/** * Pull EXIF data from image file * * @param TidypicsImage $image */ function td_get_exif($image) { // catch for those who don't have exif module loaded if (!is_callable('exif_read_data')) { return; } $mime = $image->mimetype; if ($mime != 'image/jpeg' && $mime != 'image/pjpeg') { return; } $filename = $image->getFilenameOnFilestore(); $exif = exif_read_data($filename, 'IFD0,EXIF', true); if (is_array($exif)) { $data = array_merge($exif['IFD0'], $exif['EXIF']); foreach ($data as $key => $value) { if (is_string($value)) { // there are sometimes unicode characters that cause problems with serialize $data[$key] = preg_replace('/[^[:print:]]/', '', $value); } } $image->tp_exif = serialize($data); } $filename = $image->getFilenameOnFilestore(); $exif = exif_read_data($filename, "ANY_TAG", true); if (is_array($exif)) { // GPS data $gps_exif = array_intersect_key($exif['GPS'], array_flip(array('GPSLatitudeRef', 'GPSLatitude', 'GPSLongitudeRef', 'GPSLongitude'))); $data = array_merge($exif['IFD0'], $exif['EXIF']); foreach ($data as $key => $value) { if (is_string($value)) { // there are sometimes unicode characters that cause problems with serialize $data[$key] = preg_replace('/[^[:print:]]/', '', $value); } } if (count($gps_exif) == 4) { if (is_array($gps_exif['GPSLatitude']) && in_array($gps_exif['GPSLatitudeRef'], array('S', 'N')) && is_array($gps_exif['GPSLongitude']) && in_array($gps_exif['GPSLongitudeRef'], array('W', 'E'))) { $data['latitude'] = parse_exif_gps_data($gps_exif['GPSLatitude'], $gps_exif['GPSLatitudeRef']); $data['longitude'] = parse_exif_gps_data($gps_exif['GPSLongitude'], $gps_exif['GPSLongitudeRef']); } } $image->tp_exif = serialize($data); } }
/** * Pull EXIF data from image file * * @param TidypicsImage $file */ function td_get_exif($file) { // catch for those who don't have exif module loaded if (!is_callable('exif_read_data')) { return; } $mime = $file->mimetype; if ($mime != 'image/jpeg' && $mime != 'image/pjpeg') { return; } $filename = $file->getFilenameOnFilestore(); $exif = exif_read_data($filename); create_metadata($file->getGUID(), "tp_exif", serialize($exif), "text", $file->getOwnerGUID(), ACCESS_PUBLIC); }
/** * Pull EXIF data from image file * * @param TidypicsImage $image */ function td_get_exif($image) { // catch for those who don't have exif module loaded if (!is_callable('exif_read_data')) { return; } $mime = $image->mimetype; if ($mime != 'image/jpeg' && $mime != 'image/pjpeg') { return; } $filename = $image->getFilenameOnFilestore(); $exif = exif_read_data($filename, 'IFD0,EXIF', true); if (is_array($exif)) { $data = array_merge($exif['IFD0'], $exif['EXIF']); foreach ($data as $key => $value) { if (is_string($value)) { // there are sometimes unicode characters that cause problems with serialize $data[$key] = preg_replace('/[^[:print:]]/', '', $value); } } $image->tp_exif = serialize($data); } }