aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorCash Costello <cash.costello@gmail.com>2012-07-14 14:42:37 -0400
committerCash Costello <cash.costello@gmail.com>2012-07-14 14:42:37 -0400
commit0eec78495e5f63a80c2b04fcb87bda1ccb2b6648 (patch)
tree42b2bb3b35e8d6ba2924f0aabe42f218beea6bca /lib
parent65548983c054a48fe0adb94c327847a7101db390 (diff)
downloadelgg-0eec78495e5f63a80c2b04fcb87bda1ccb2b6648.tar.gz
elgg-0eec78495e5f63a80c2b04fcb87bda1ccb2b6648.tar.bz2
added exif back
Diffstat (limited to 'lib')
-rw-r--r--lib/exif.php39
1 files changed, 20 insertions, 19 deletions
diff --git a/lib/exif.php b/lib/exif.php
index 43a640336..8ca0dde0c 100644
--- a/lib/exif.php
+++ b/lib/exif.php
@@ -8,47 +8,48 @@
/**
* Pull EXIF data from image file
*
- * @param TidypicsImage $file
+ * @param TidypicsImage $image
*/
-function td_get_exif($file) {
+function td_get_exif($image) {
// catch for those who don't have exif module loaded
if (!is_callable('exif_read_data')) {
return;
}
- $mime = $file->mimetype;
+ $mime = $image->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);
+ $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);
+ }
}
/**
* Grab array of EXIF data for display
*
- * @param int $file_guid GUID of TidypicsImage
+ * @param TidypicsImage $image
* @return array|false
*/
-function tp_exif_formatted($file_guid) {
-
- $metadata_exif = get_metadata_byname($file_guid, "tp_exif");
- if (!$metadata_exif) {
- // //try to load it from the file if its not in the database
- $file = new ElggFile($file_guid);
- td_get_exif($file);
- unset($file);
- $metadata_exif = get_metadata_byname($file_guid, "tp_exif");
- }
+function tp_exif_formatted($image) {
- if (!$metadata_exif) {
+ $exif = $image->tp_exif;
+ if (!$exif) {
return false;
}
- $exif = unserialize($metadata_exif["value"]);
+ $exif = unserialize($exif);
$model = $exif['Model'];
if (!$model) {