Tiff Analyzer - PullRequest
       8

Tiff Analyzer

4 голосов
/ 09 июля 2009

Я пишу программу для конвертации некоторых данных, в основном связок изображений Tiff. У некоторых из Tiffs, кажется, есть небольшая проблема с ними. Они хорошо отображаются в некоторых программах просмотра (Irfanview, старая система клиента), но не отображаются в других (новая система клиента, программа просмотра изображений Windows и факса). Я вручную посмотрел на двоичные данные, и все теги, кажется, в порядке. Кто-нибудь может порекомендовать приложение, которое может проанализировать его и сказать мне, что, если что-то, с ним не так?

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

UDPATE: Для тех, кто заинтересован, вот теги из хорошего и плохого файла:

BAD
Тип тега Длина Значение
256 Ширина изображения SHORT 1 1652
257 Длина изображения КОРОТКИЙ 1 704
258 битов на образец SHORT 1 1
259 Сжатие SHORT 1 4
262 ФОТОМЕТРИЧЕСКИЙ КОРОТКИЙ 1 0
266 Заполнить заказ SHORT 1 1
273 смещения полосы ДЛИНА 1 210 (шестигранник d2)
274 Ориентация КРАТКАЯ 1 3
277 образцов на пиксель КРАТКОЕ 1 1
278 строк на полосу SHORT 1 450
279 отсчетов байтов в полосе ДЛИНА 1 7264 (1c60 Hex)
282 X Резолюция РАЦИОНАЛЬНАЯ 1 <194> 200/1 = 200.000
283 Y Резолюция РАЦИОНАЛЬНАЯ 1 <202> 200/1 = 200.000
284 Плоская конфигурация КОРОТКИЙ 1 1
296 Блок разрешения SHORT 1 2

Good
Тип тега Длина Значение
254 Новый тип подфайла LONG 1 0 (0 Hex)
256 Ширина изображения SHORT 1 1193
257 Длина изображения КОРОТКОЕ 1 788
258 битов на образец SHORT 1 1
259 Сжатие SHORT 1 4
262 Фотометрический КОРОТКИЙ 1 0
266 Заполнить заказ SHORT 1 1
270 Описание изображения ASCII 45 256
273 смещения полосы LONG 1 1118 (45e Hex)
274 Ориентация КРАТКАЯ 1 1
277 образцов на пиксель КРАТКОЕ 1 1
278 строк на полосу ДЛИНА 1 788 (314 шестнадцатеричных)
279 отсчетов байтов в полосе ДЛИНА 1 496 (1f0 Hex)
280 мин. Пример значения SHORT 1 0
281 Макс. Значение выборки SHORT 1 1
282 X Резолюция РАЦИОНАЛЬНАЯ 1 <301> 200/1 = 200.000
283 Y Резолюция РАЦИОНАЛЬНАЯ 1 <309> 200/1 = 200.000
284 Плоская конфигурация КОРОТКИЙ 1 1
293 Группа 4 Опции ДЛИНО 1 0 (0 шестнадцатеричный)
296 Блок разрешения SHORT 1 2

Ответы [ 5 ]

3 голосов
/ 09 июля 2009

Обычно это связано с тем, что TIFF использует кодировку JPEG из стандарта 6.0, который был вскоре отменен. Посмотрите на тег 259. Если это 6, это проблема. JPEG должен быть закодирован по «новой» схеме, 7. Стандартные библиотеки не будут читать старую, включая те, которые поставляются с Windows.

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

1 голос
/ 26 мая 2010

RowsPerStrip в плохом изображении составляет 450, что меньше, чем 704, длина изображения (высота). Это подразумевает, что изображение должно иметь две полосы. Из-за этого StripOffsets и StripByteCounts должны иметь счетчик два. Они указывают смещения файлов, в которых расположены данные полосы. Если эти смещения отсутствуют, декодируется будет только первая полоса.

1 голос
/ 09 июля 2009

LibTIFF может быть полезным. Проблемы с просмотром Tiff часто вызваны используемым сжатием. Я бы посмотрел на это.

0 голосов
/ 09 июля 2009

TIFF - это очень сложный формат - не только по богатству данных, которые он может кодировать (различный формат пикселей, различные кодеры), - но также и из-за богатства самого формата файла (его общая структура может содержать все ). Это в основном мусорная свалка для каждой идеи, которую мы когда-либо имели в изображениях. : -)

Я очень рекомендую библиотеку WPF Imaging из .NET 3.0. Его Tiff-декодер, хотя и не поддерживает все форматы пикселей, он очень надежный и имеет простой интерфейс для доступа ко всем метаданным.

0 голосов
/ 09 июля 2009

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

...