Запись 10,12-битных файлов TIFF с помощью LibTIFF C ++

Я пытаюсь записать 10,12-битные файлы RGB TIFF с помощью LibTIFF .

Данные пикселей сохраняются локально в беззнаковом коротком буфере (16 бит)

1) Если я установил TIFFTAG_BITSPERSAMPLE на 10 или 12, из буфер, и вывод неверен. (Я понимаю, что он просто читает 10 или 12 бит на компонент, а не 16, и это проблема)

2) Я попытался упаковать биты в буфер, так что это действительно 12-R, 12-G , 12-Б. В этом случае я думаю, что файл записывается правильно, но ни один просмотрщик, который мне не удалось найти, не смог правильно отобразить это изображение.

3) Если я установлю для TIFFTAG_BITSPERSAMPLE значение 16, зрители смогут отображать изображение TIFF, но тогда у меня возникнет проблема, заключающаяся в том, что я не знаю, было ли изображение изначально 10 или 12 битным (если я хочу чтобы позже прочитать его с помощью LibTIFF). Кроме того, зритель ожидает, что динамический диапазон будет 16 бит, а не 10 или 12, что также приведет к плохому просмотру.

4) Больше всего раздражает то, что я не смог найти в Интернете одно 10-, 12- или 14-битное изображение TIFF, чтобы увидеть, как должен выглядеть заголовок.

Итак, наконец, как правильно записать 10 или 12-битные данные изображения в файл TIFF ?????

12
задан Itsik 15 August 2011 в 17:15
поделиться