コード例 #1
0
ファイル: exif.php プロジェクト: juho-jaakkola/tidypics
/**
 * 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);
    }
}
コード例 #2
0
ファイル: exif.php プロジェクト: rijojoy/MyIceBerg
/**
 * 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);
}
コード例 #3
0
ファイル: exif.php プロジェクト: pleio/tidypics
/**
 * 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);
    }
}