2017-01-28 2 views
1

Я использую метаданные-экстрактор для написания приложения Java, которое организует изображения и находит дубликаты. API отличный, но я не могу понять.Как получить доступ к данным необработанного изображения

Предположим, у меня есть два изображения в формате JPG. Эти изображения, визуально, точно такие же (то есть одинаковые пиксельные). Однако, возможно, что-то внутри метаданных, инкапсулированных в файл, отличается.

Если я вычислил хэши MD5 на каждом полностью файл, я получу два разных хэша. Тем не менее, я хочу рассчитать хеш только данных изображения/пикселя, что даст одинаковый хэш для обоих файлов.

Итак - Есть ли способ вытащить необработанные данные изображения/пикселя из JPG с помощью метаданных-экстрактора, чтобы я мог рассчитать свой хэш на этом?

Также доступен Javadoc для этого API? Кажется, я не могу найти его.

+0

Почему вы используете хеш-память md5, не будет ли проще сравнивать данные в файле быстрее? Также вы можете увидеть jpeg-кодирование и получить данные изображения из соответствующего фрагмента. –

+0

Также, на мой взгляд, я думаю, что если вы хотите извлечь растровое изображение (x, y в argb), было бы проще просто не использовать экстрактор метаданных. Процесс открытия jpeg как двоичного файла и разбора фрагментов данных изображения кажется более коротким, чем разработка их api. Это не основано на факте, но мое мнение основано на кратковременном рассмотрении их апи. –

+0

Да, просто сравнение данных было бы проще. Поскольку я не знаком с тем, как выбирать JPG, я не уверен, как получить этот «соответствующий кусок», который представляет данные изображения. –

ответ

1

Вы можете достичь этого, используя класс библиотеки JpegSegmentReader. Это позволит вам вытащить сегменты JPEG, содержащие данные изображения, и игнорировать сегменты метаданных.

Я обсуждал эту технику в another answer, и спрашивающий указал, что они добились успеха в этом подходе.

Это действительно создаст приятное приложение-образец для библиотеки. Если вы придумаете что-то и почувствуете, что разделяете, пожалуйста, сделайте это.

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