Преобразование 14-битного изображения в 16-битный TIFF с помощью C #

У меня есть буфер с 14-битным изображением (640 х 512). Мне нужно сохранить это изображение как 16-битный TIFF.

Итак, каждый пиксель занимает 2 байта, и я могу преобразовать его в оттенки серого (8 бит) следующим образом:

(buffer[index] | buffer[index + 1] << 8) & 0x3FFF

(index - например, количество пикселей).

Насколько я понимаю, 8-битное изображение я легко могу сохранить в формате BMP с помощью растрового изображения:

bmp.Save("c:\\button.gif", System.Drawing.Imaging.ImageFormat.Bmp);

Но я не знаю, как это преобразовать в 16-битный TIFF. Должен ли я преобразовать 8 бит в 16 или 14 в 16? И как?

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


person Alexey    schedule 29.04.2014    source источник
comment
Вы можете использовать LibTiff .NET для сохранения изображения в формате TIFF: bitmiracle.com/libtiff, чтобы преобразовать 14 в 16 bit умножить каждый пиксель (2 байта) на 4.   -  person Alex F    schedule 29.04.2014
comment
@AlexFarber, спасибо! почему вы оставляете комментарий, а не ответ?   -  person Alexey    schedule 29.04.2014


Ответы (1)


Вы можете использовать LibTiff .NET для сохранения изображения в формате TIFF:

LibTiff .NET

Чтобы преобразовать 14 в 16 бит, умножьте каждый пиксель (2 байта) на 4.

person Alex F    schedule 30.04.2014