Вопрос

Мне интересно разбирать результат ExiFTool с API Java или что-то в этом роде.

Я исследовал, но я не нашел никакого примера. Например, как я мог получить эти результаты в моем проекте Java?

Exiftool номер версии: 8.22

Имя файла: exiftool.jpg

Каталог: файл t / изображений

Размер: 24 КБ Дата / время модификации файлов

И т. Д. .. Я ищу «как» или что-то в этом роде.

Это было полезно?

Решение

Exiftool. (для Java) предназначен для простого в использовании и надежной java абстракции Exiftool Phil Харви. Я только что сделал первую публичную релиз в этой прошлой неделе после инкубирования проекта под зонтиком проекта IMGSCALR некоторое время.

Проект находится в коммерческой лицензии Apache 2.

Моя цель для библиотеки не просто абстрагировать код выполнения внешнего процесса от вызывающего абонента (как и большинство других слоев абстракции, кажутся), но чтобы на самом деле создать обертку так плотно интеграцию и устойчиво (я уточню, что я уточню, что я уточню Значит здесь позже), что вы относитесь к экземплярам вашего Exiftool Class именно так, как вы бы, если бы Exiftool сам был написан в Java.

В этом первоначальном выпуске я поддерживаю данные тега чтения (добавлю запись в будущем выпуске), и это так просто, как это:

File image = // path to some image
ExifTool tool = new ExifTool();

Map<Tag, String> valueMap =
    tool.getImageMeta(image, Tag.GPS_LATITUDE, Tag.GPS_LONGITUDE);

System.out.println("Lat: " + valueMap.get(Tag.GPS_LATITUDE) +
    "\tLong: " + valueMap.get(Tag.GPS_LONGITUDE));

Использование EXIFTOOL в новом «режиме демона» (-Stay_Open True CMD Line) также поддерживается и включение поддержки для него так же просто, как создание экземпляра exiftool, как так:

ExifTool tool = new ExifTool(Feature.STAY_OPEN);

Документация включена Как использовать класс exiftool Обшивается, покрывая все от дизайна до производительности для безопасности потоков.

В дополнение к использованию exiftool простым от Java, класс использует значительное количество мер предосторожности для минимизации проблем времени выполнения, а также правильно ловить и сообщать о любых ошибках, которые могут возникнуть в хорошо документированных способах (вместо того, чтобы позволить удивлению исключений от Core Java классов).

Я был настолько педантичным с этим с этим восстановлением или восстановлением ошибок, потому что класс предназначен для того, чтобы утилизировать ExiFTOOL в среде высокой доступности, таких как оживленное веб-приложение. Я не просто хотел обернуть простые процессы, а затем бросить руки в воздух, если что-то взорвалось. Я знал себя (и кто-либо другой, использующий класс), понадобится хорошо спроектированное API для облегчения восстановления ошибок.

Например, попытка использовать ExiFTOOL в режиме демона, приведет к тому, что класс фактически проверяет базовую установку ExiFTOOL для поддержки для этой функции и бросить неподдерживаемуюfeatureexception с рекомендациями о том, как работать по всей проблеме, если она не поддерживается.

В дополнение к проверке предварительной условии, чтобы убедиться, что использование класса (а именно в режиме демона) не утечка нативных процессов ОС, а также входные / выводы, используемые для взаимодействия с ними, класс обеспечивает резьбу автоматического очистки после Указанный интервал бездействия (по умолчанию 10 минут) будет выключать внешний процесс чисто и потоки чтения / записи, что делает экземпляр IDLE Exciftool легко и легко сохранить для повторного использования.

Все ресурсы повторно инициализируются на следующем вызове класса для анализа более метаданных, поэтому нет необходимости выкидывать и повторно создавать новые экземпляры. Также резьба очистки только выполняется только после длительных периодов бездействия, а не в расписании. Вы можете установить интервал на все, что вы хотите полностью выключить резьбу очистки и управлять очисткой самостоятельно (просто вызов Close ()).

Эти дизайны являются частью моей конечной цели для создания интеграции ExiFTOOL в приложение Java бесшовные, исполнительные и легкие.

Вы можете проверить Основная страница проекта Для получения дополнительной информации о проекте, использование, источник, скачивание ссылок и т. Д. Или вы можете прыгать вправо на Гадость И просмотрите код, если вы предпочитаете.

Другие советы

Проверьте ответ на форуме EXIFTOOL:

http://u88.n24.weensu.ca/exiftool/forum/index.php/topic,2697.0.html.

Я не знаю exiftool, но я ранее использовал Mediautil. Читать и писать теги exif в Java (я использовал его для автоматического вращения изображения JPEG)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top