Преобразование формата файла в TIFF. Некоторые вопросы? - PullRequest
2 голосов
/ 30 апреля 2010

У меня есть проприетарный формат изображения SNG ( проприетарный формат ), в котором содержится бесчисленное множество данных изображения вместе с метаинформацией изображения в отдельном файле HDR.

Теперь мне нужно преобразовать этот формат SNG в стандартный формат TIFF 6.0. Поэтому я изучил формат TIFF, т. Е. Его заголовок, каталоги файлов изображений (IFD) и данные раздетых изображений.

Теперь у меня мало вопросов об этом преобразовании. Пожалуйста, помогите мне.

  1. Непрерывные данные SNG против данных с разметкой TIFF. Должен ли я преобразовывать данные SNG в TIFF как непрерывные данные в одной полосе (проблема с загрузкой / редактированием данных?) ИЛИ делать логические полосы смещения для данных изображения SNG.

  2. Заголовок данных SNG использует только необходимую мета-информацию, поэтому при преобразовании SNG в TIFF некоторая информация не может быть получена, например, NewSubFileType, программный тег и т. Д.

    Таким образом, это вызывает опасение, что после преобразования необходима ли какая-либо недостающая информация каталога, такая как NewSubFileType, программный тег и т. Д., И является ли достаточным условием для файла TIFF.

  3. Кодирование каждого пиксельного компонента RGB. Пример в данных SNG:

Здесь каждая полоса данных изображения SNG на пиксель кодируется как:

Out^[i] := round( LineBuffer^[i * 3] * **0.072169**  +  LineBuffer^[i * 3 + 1] * **0.715160** + LineBuffer^[i * 3+ 2]* **0.212671**); 

Единственный способ, из которого я могу сделать вывод, состоит в том, что каждый пиксель представлен с 3 компонентами RGB, и некоторый коэффициент умножается с каждым компонентом, чтобы программа просмотра SNG работала с информацией о цвете RGB данных изображения SNG. ( Разработчик, который раньше работал над этим слева, теперь я следую за следом :))

Таким образом, при преобразовании этого в TIFF необходимо выполнить то же самое декодирование. Это вызывает обеспокоенность по поводу того, как создается информация RBG в формате TIFF, или лучше нам нужна эта информация?.

Пожалуйста, помогите ...

Ответы [ 2 ]

1 голос
/ 30 апреля 2010

Вы можете загрузить это в стандартный дескриптор растрового изображения Windows? Если это так, то, вероятно, существует множество бесплатных и коммерческих библиотек для сохранения его в формате TIFF.

Стандарт для TIFF - libtiff - это библиотека C. Вот версия для Delphi, сделанная экспертом в формате TIFF:

http://www.awaresystems.be/imaging/tiff/delphi.html

Кажется, есть много вариантов.

Я думаю, что подход

  1. Загрузка вашего формата в стандартное растровое изображение в памяти (что вам нужно сделать, чтобы показать его, верно?)
  2. Использование существующей библиотеки кодирования TIFF для сохранения в формате TIFF

Будет намного проще, чем пытаться сделать прямое преобразование формата в формат. Единственные причины, по которым я бы так не поступил:

  1. Растровое изображение слишком велико для хранения в памяти
  2. Исходный формат с потерями, и я потеряю больше качества при перекодировании, но вам придется сохранять данные в стандартном формате с потерями (JPEG), чтобы сохранить качество.

Отказ от ответственности: я работаю на Atalasoft .

Мы создаем кодеки обработки изображений .NET (включая TIFF), которые намного проще в использовании, чем LibTiff, их можно вызывать в Delphi через COM. Мы можем преобразовать стандартные растровые изображения Windows в TIFF или PDF (или другие форматы) с помощью пары строк кода.

1 голос
/ 30 апреля 2010

Один из подходов, если у вас есть приложение Windows, которое обрабатывает и может печатать этот формат, было бы позволить ему выполнить всю работу за вас и вызвать его для печати файла на один из многих доступных «драйверов принтера», которые поддерживают прямой вывод в TIFF.

...