Как получить хэш полезной нагрузки контейнера цифровых фотографий, в идеале на Java?

Я отредактировал свойства EXIF ​​на цифровых фотографиях и хотел бы иметь возможность идентифицировать их как идентичные. Я считаю, что это подразумевает извлечение потока полезной нагрузки и вычисление хэша. Что является лучшим способом сделать это, в идеале на языке Java, в идеале на Java с использованием собственной реализации для повышения производительности.

1 ответ

Решение

Файлы JPEG представляют собой серию "сегментов". Некоторые содержат данные изображения, другие нет.

Данные Exif хранятся в сегменте APP1. Вы можете написать некоторый код, чтобы сравнить другие сегменты, и посмотреть, совпадают ли они. Хеш кажется разумным подходом здесь. Например, вы можете сравнить хэш только сегментов SOI, DQT или DHT. Вам нужно поэкспериментировать, чтобы увидеть, какой из них дает лучший результат.

Проверьте JpegSegmentReader класс из моей библиотеки экстрактора метаданных.

С этим классом вы можете извлечь определенные сегменты из JPEG для обработки.

Дайте нам знать, как вы поживаете!

Другие вопросы по тегам