2014-01-09 5 views
0

У меня есть php-скрипт, который использует Flickr API для загрузки моих изображений из Flickr, разбора связанного текста и метаданных и сохранения версий на моем сервере с метаданными, встроенными в файлы изображений. Я работаю с историческими изображениями и хочу отображать их в порядке даты на моем смартфоне (я пытаюсь использовать приложение F-Stop на Android).Проблемы с записью 'date created' EXIF ​​/ XMP метаданные в jpgs

У меня есть обновление метаданных, работающее с использованием инструментария метаданных PHP JPEG - http://www.ozhiker.com/electronics/pjmt/ - путем записи данных XMP в файлы. Но для моей жизни я не могу заставить работать «дата взята»!

Вот некоторые примеры изображений:

Это оригинальный файл с Flickr, с датой, установленной в качестве даты я создал файл http://metapicz.com/#landing?imgsrc=http%3A%2F%2Fwww.whatsthatpicture.com%2Ftools%2FPHP_JPEG_Metadata_Toolkit%2Fflickr.jpg (щелкните правой кнопкой мыши на изображение и сохранить его, если вы хотите, чтобы проверить его локально)

Вот моя первая попытка с помощью инструментария. Он обновил XMP 'DateCreated', но не EXIF ​​CreateDate или XMP CreateDate http://metapicz.com/#landing?imgsrc=http%3A%2F%2Fwww.whatsthatpicture.com%2Ftools%2FPHP_JPEG_Metadata_Toolkit%2Fprocessed_orig.jpg

Поэтому я заставил его изменить XMP CreateDate http://metapicz.com/#landing?imgsrc=http%3A%2F%2Fwww.whatsthatpicture.com%2Ftools%2FPHP_JPEG_Metadata_Toolkit%2Fprocessed_new.jpg. Затем это появилось в проводнике Windows в качестве созданной даты, но не в приложении F-Stop.

Поэтому мне было интересно, имеет ли EXIF ​​CreateDate, который все еще находится в значении от Flickr, имеет приоритет, поэтому я лишил эти метаданные (набор инструментов не позволяет вам изменять EXIF, насколько я могу видеть) http://metapicz.com/#landing?imgsrc=http%3A%2F%2Fwww.whatsthatpicture.com%2Ftools%2FPHP_JPEG_Metadata_Toolkit%2Fprocessed_new2.jpg

В любом из этих случаев F-Stop не интерпретирует дату правильно. Я связался с разработчиками, но на самом деле я не думаю, что это приложение по вине, я думаю, что это формат метаданных в файлах. Это потому, что, когда я отобразил этот исходный файл в Проводнике Windows и изменил дату, указанную там, этот файл отлично работает http://metapicz.com/#landing?imgsrc=http%3A%2F%2Fwww.whatsthatpicture.com%2Ftools%2FPHP_JPEG_Metadata_Toolkit%2Fflickr_win.jpg

Может ли кто-нибудь сказать, что происходит, или предложить другой способ, чтобы я мог это сделать?

+0

так ... где ваш код? Копание данных JPG EXIT без предварительного просмотра кода, который может иметь очевидную проблему (неправильный вызов API, установка неправильного свойства, использование вашей собственной библиотеки недокументов и т. Д.) Не является идеальной ситуацией для кого-то, кто хочет помочь вам найти проблему. –

+0

Извините, я понял, что вы имеете в виду, хотя я сделал предположение (возможно, ошибочно), что библиотека работает нормально, это просто значения в изображениях с ошибкой, в частности, все, что имеет CreateDate или DateCreated. Позвольте мне пересмотреть сообщение, и я добавлю некоторые подробности. Мне также было интересно, может ли кто-то просто вмешаться и сказать: «Это глупый подход, используйте это ...»! Извинения, относительный новичок на этом сайте! – jamesinealing

+0

, вы можете захотеть захватить загрузку исходного кода http://www.exiv2.org и посмотреть, какое поле изменяет для изменения даты. Не прочитав спецификацию EXIF, я полностью ожидаю, что вам может потребоваться изменить несколько полей одновременно, чтобы произвести истинное изменение даты. –

ответ

0

ОК, я решил это.

Похоже, что приложение FStop не может читать даты из файлов xmp, поэтому оно либо читает их из сегмента JFIF/App12/«Ducky» в начале файла, либо если этого не существует читал временную метку файла. Конечно, это означало, что мой план создания одного профиля xmp со всеми моими метаданными не сработает.

Я переключился на ImageMagick, но столкнулся с той же проблемой - я мог снимать профили и загружать/изменять профиль xmp, но не мог сразу увидеть способ заставить его создавать/обновлять значения даты в сегменте JFIF.

В конце концов, я прибегал к вызову exiftool с помощью команды exec exec ("exiftool -AllDates = '1863-07-23 12:00:00' -overwrite_original testfile.jpg"); (Я изменю его от AllDates и просто настрою CreateDate, но мне нужно его проверить)

Немного неудобно, но он работает! Я использую Imagick в любом случае для изменения реальных изображений, поэтому, если кто-то знает способ, я могу изменить эти заголовки, тогда я был бы рад услышать это.

Смежные вопросы