Added some info to the view
This commit is contained in:
parent
b1d7cfe616
commit
e297c5ca7e
@ -144,8 +144,8 @@ class Import extends Command
|
|||||||
$po->width = $po->io()->getImageWidth();
|
$po->width = $po->io()->getImageWidth();
|
||||||
$po->orientation = $po->io()->getImageOrientation();
|
$po->orientation = $po->io()->getImageOrientation();
|
||||||
|
|
||||||
$po->gps_lat = $po->gps(preg_split('/,\s?/',$po->io()->getImageProperty('exif:GPSLatitude')),$po->io()->getImageProperty('exif:GPSLatitudeRef'));
|
$po->gps_lat = $po->latlon(preg_split('/,\s?/',$po->io()->getImageProperty('exif:GPSLatitude')),$po->io()->getImageProperty('exif:GPSLatitudeRef'));
|
||||||
$po->gps_lon = $po->gps(preg_split('/,\s?/',$po->io()->getImageProperty('exif:GPSLongitude')),$po->io()->getImageProperty('exif:GPSLongitudeRef'));
|
$po->gps_lon = $po->latlon(preg_split('/,\s?/',$po->io()->getImageProperty('exif:GPSLongitude')),$po->io()->getImageProperty('exif:GPSLongitudeRef'));
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$po->thumbnail = exif_thumbnail($po->file_path());
|
$po->thumbnail = exif_thumbnail($po->file_path());
|
||||||
|
@ -19,6 +19,10 @@ class Photo extends Model
|
|||||||
8=>-90,
|
8=>-90,
|
||||||
];
|
];
|
||||||
|
|
||||||
|
public function date_taken() {
|
||||||
|
return $this->date_taken ? (date('Y-m-d H:i:s',$this->date_taken).($this->subsectime ? '.'.$this->subsectime : '')) : 'UNKNOWN';
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Determine the new name for the image
|
* Determine the new name for the image
|
||||||
*/
|
*/
|
||||||
@ -33,7 +37,35 @@ class Photo extends Model
|
|||||||
return (($short OR preg_match('/^\//',$file)) ? '' : config('photo.dir').DIRECTORY_SEPARATOR).$file;
|
return (($short OR preg_match('/^\//',$file)) ? '' : config('photo.dir').DIRECTORY_SEPARATOR).$file;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function gps(array $coordinate,$hemisphere) {
|
/**
|
||||||
|
* Calculate a file path ID based on the id of the file
|
||||||
|
*/
|
||||||
|
public function file_path_id($sep=3,$depth=9) {
|
||||||
|
return trim(chunk_split(sprintf("%0{$depth}s",$this->id),$sep,'/'),'/');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display the GPS coordinates
|
||||||
|
*/
|
||||||
|
public function gps() {
|
||||||
|
return ($this->gps_lat AND $this->gps_lon) ? sprintf('%s/%s',$this->gps_lat,$this->gps_lon) : 'UNKNOWN';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return an Imagick object or attribute
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public function io($attr=NULL) {
|
||||||
|
if (is_null($this->_io))
|
||||||
|
$this->_io = new \Imagick($this->file_path());
|
||||||
|
|
||||||
|
return is_null($attr) ? $this->_io : $this->_io->getImageProperty($attr);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Calculate the GPS coordinates
|
||||||
|
*/
|
||||||
|
public function latlon(array $coordinate,$hemisphere) {
|
||||||
if (! $coordinate OR ! $hemisphere)
|
if (! $coordinate OR ! $hemisphere)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
@ -57,17 +89,6 @@ class Photo extends Model
|
|||||||
return round($sign*($degrees+$minutes/60+$seconds/3600),$degrees > 100 ? 3 : 4);
|
return round($sign*($degrees+$minutes/60+$seconds/3600),$degrees > 100 ? 3 : 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Return an Imagick object or attribute
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public function io($attr=NULL) {
|
|
||||||
if (is_null($this->_io))
|
|
||||||
$this->_io = new \Imagick($this->file_path());
|
|
||||||
|
|
||||||
return is_null($attr) ? $this->_io : $this->_io->getImageProperty($attr);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Rotate the image
|
* Rotate the image
|
||||||
*
|
*
|
||||||
@ -80,6 +101,14 @@ class Photo extends Model
|
|||||||
return $imo->getImageBlob();
|
return $imo->getImageBlob();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determine if the image should be moved
|
||||||
|
*/
|
||||||
|
public function shouldMove()
|
||||||
|
{
|
||||||
|
return ($this->filename != $this->file_path(TRUE,TRUE));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return the image's thumbnail
|
* Return the image's thumbnail
|
||||||
*
|
*
|
||||||
@ -98,6 +127,16 @@ class Photo extends Model
|
|||||||
return $this->rotate($imo);
|
return $this->rotate($imo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the extension of the image
|
||||||
|
*/
|
||||||
|
public function type($mime=FALSE) {
|
||||||
|
return strtolower($mime ? File::mime_by_ext(pathinfo($this->filename,PATHINFO_EXTENSION)) : pathinfo($this->filename,PATHINFO_EXTENSION));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find duplicate images based on some attributes of the current image
|
||||||
|
*/
|
||||||
public function list_duplicate() {
|
public function list_duplicate() {
|
||||||
$po = DB::table('photo');
|
$po = DB::table('photo');
|
||||||
|
|
||||||
|
@ -8,7 +8,40 @@
|
|||||||
<div class="panel-heading">Photo <?php echo $photo->id; ?></div>
|
<div class="panel-heading">Photo <?php echo $photo->id; ?></div>
|
||||||
|
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
<img src="/thumbnail/<?php echo $photo->id; ?>">
|
<div class="col-md-2"><img src="/thumbnail/<?php echo $photo->id; ?>" width="200px"></div>
|
||||||
|
<div class="col-md-10">
|
||||||
|
<div class="dl-horizontal">
|
||||||
|
<dt>Filename</dt><dd><?php echo $photo->file_path(TRUE); ?></dd>
|
||||||
|
<?php if ($photo->shouldMove()) : ?>
|
||||||
|
<dt>NEW Filename</dt><dd><?php echo $photo->file_path(TRUE,TRUE); ?></dd>
|
||||||
|
<?php endif ?>
|
||||||
|
<br/>
|
||||||
|
<dt>Date Taken</dt><dd><?php echo $photo->date_taken(); ?></dd>
|
||||||
|
<dt>Camera</dt><dd><?php echo $photo->make; ?></dd>
|
||||||
|
<dt>Model</dt><dd><?php echo $photo->model; ?></dd>
|
||||||
|
<br/>
|
||||||
|
<dt>Location</dt><dd>
|
||||||
|
<?php if ($photo->gps() == 'UNKNOWN') : ?>
|
||||||
|
UNKNOWN
|
||||||
|
<?php else : ?>
|
||||||
|
<div id="map" style="width: 400px; height: 300px"></div>
|
||||||
|
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
var myLatLng = {lat: <?php echo $photo->gps_lat; ?>, lng: <?php echo $photo->gps_lon; ?>};
|
||||||
|
var map = new google.maps.Map(document.getElementById("map"), {
|
||||||
|
zoom: 16,
|
||||||
|
center: myLatLng,
|
||||||
|
mapTypeId: google.maps.MapTypeId.ROADMAP
|
||||||
|
});
|
||||||
|
var marker = new google.maps.Marker({
|
||||||
|
map: map,
|
||||||
|
position: myLatLng,
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<?php endif ?>
|
||||||
|
</dd>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
Loading…
Reference in New Issue
Block a user