Как вам обрезать XMP XML, содержащийся в JPG - PullRequest
3 голосов
/ 01 апреля 2012

Благодаря использованию sanselan я обнаружил, что основная причина того, что фотографии iPhone, импортированные в окна, становятся нередактируемыми, заключается в том, что после фактического XML есть контент (пробел?) (Для получения дополнительной информации и связанного примера плохого XMPXML см. https://apple.stackexchange.com/questions/45326/why-can-i-not-edit-some-photos-imported-from-an-iphone-to-windows-vista).

Я бы хотел отсканировать мой фотоархив и «обрезать» XMP XML.

Есть ли простой способ сделать это?

У меня есть некоторый код Java, который может рекурсивно перемещаться по моему фотоархиву и ОБНАРУЖИТЬ проблему. Хотя я не уверен, как урезать и записать XML обратно.

Ответы [ 2 ]

2 голосов
/ 24 апреля 2012

Получить существующий XML любым способом.

Следующее работает при использовании библиотеки Apache Sanselan :

String xmpXml = Sanselan.getXmpXml(new File('/path/to/jpeg'));

Тогда обрежь это ...

xmpXml = xmpXml.trim();

Затем запишите его обратно в файл, используя решение для сериализации Xmp XML в существующий jpeg .

0 голосов
/ 19 апреля 2012

попробуйте следующие шаги:

  1. собрать все фотографии в одну папку (например, папка xmlToConvert на рабочем столе)
  2. открыть окно Terminal.app
  3. перейдите в каталог, в который вы поместили файлы (например, cd ~/Desktop/xmlToConvert)
  4. выполните следующую команду из командной строки

    mkdir converted ; for f in *.xml ; do cat $f | head -n $(wc -l $f) > converted/$f ; done

Подкаталог converted/ теперь должен содержать все файлы без пробела в конце.

(то есть папка с именем converted в xmlToConvert, которую вы создали на рабочем столе)

НТН

...