exif чтение данных-неверный код идентификатора APP1 Exif
У меня проблемы с некоторыми из моих фотографий, когда я хочу читать данные EXIF.
мой код ниже:
$exif_date = exif_read_data($file_path, 'IFD0');
С некоторыми изображениями я получаю warrning: Сообщение: exif_read_data(001.jpg) [функция.exif-read-data]: неверный код идентификатора app1 Exif
мой вопрос: как я могу избежать этого warrning, могу ли я проверить, правильно ли app1 перед exif_read? Спасибо за помощь.
2 ответов
вы можете использовать PHP getimagesize()
функция для извлечения маркеров приложений из файла, а затем проверьте, действительно ли маркер APP1 содержит данные EXIF (содержимое для этого маркера должно начинаться с "Exif")
для быстрого ответа взгляните на последние строки этого сообщения.
Я думаю, что какой-то код по-прежнему отсутствует. Я столкнулся с той же проблемой, и после поиска я нашел несколько веб-сайтов, связанных с этой проблемой:
http://drupal.org/node/556970 отчет об ошибке с 2 решения:
- просто поставить
@
передexif_read_data
- Регистрация
$imageinfo['APP1']
если он содержит Exif
после читая ответ dcro здесь, я обнаружил, что второй параметр getimagesize()
возвращает такое $imageinfo
массив. Теперь я протестировал одно из моих изображений со следующим кодом:
<?php
getimagesize("test.jpg", $info);
var_dump($info);
?>
это вернуло следующее:
array(1) {
["APP1"]=>
string(434) "http://ns.adobe.com/xap/1.0/<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Exempi + XMP Core 4.1.1">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:dc="http://purl.org/dc/elements/1.1/">
<dc:type>Image</dc:type>
<dc:format>image/jpeg</dc:format>
</rdf:Description>
</rdf:RDF>
</x:xmpmeta>
<?xpacket end="w"?>"
}
это кстати. не похоже на Эксифа. Это больше похоже на XMP, но самое смешное, что, например, exiftool находит некоторые данные exif (например, ориентацию). В спецификация XMP я нашел что можно иметь данные XMP и Exif бок о бок в одном файле (стр. 18). Дальнейший поиск показал, что есть такой скрипт, как этот извлечение Exif из XMP.
во всяком случае, с
- getimagesize () не дает мне полезной информации о Exif в моей картине и
- указанный скрипт показывает, что в моем изображении данные Exif не встроены в данные XMP и
- он просто работает для подавления exif-read-data () предупреждение
Я все равно буду использовать @exif-read-data($file_path)
решение.