Отображение 16-битных необработанных данных изображения в серой шкале в VC++ (mfc)
У меня есть 16-битные упакованные необработанные изображения серой шкалы.
каждое изображение может иметь разный высокий бит, например: 9,11,13 или 15 (10,12,14 или 16 бит на пиксель соответственно). Построение и использование статистики изображений я могу вычислить минимальные/максимальные значения пикселей и расширить динамический диапазон изображения до 16 бит на пиксель/или использовать другую встроенную информацию для расширения диапазона до 16 бит. обратите внимание, что эти изображения имеют > 10 мегапикселей, размер файла > 20 Мб ;) скорость здесь является проблемой.
все вышесказанное очень легко сделать, и я уже сделал эту часть.
теперь я хочу отобразить эти данные изображения на CDC без потери динамического диапазона изображения (без преобразования пиксельных данных, т. е. 16->8 бит). Также не следует создавать двойные изображения, например: одно с 16 битами (оригинал для обработки), а второе с 8 битами (Клон для отображения на DC). Есть ли для этого какое-либо решение vc++/mfc, или это только мое желаемое?
кратко попробовал использовать DIBSection с поддонами, но, насколько мне известно, это должно быть использовано на RGB-дисплеях с менее чем 24 битами (8 бит на канал). Так или иначе застрял в поиске правильного рабочего примера для поддонов, то есть ни один из них не использует 16-битные данные gratscale image.
Наверное, я перепробовал почти все. И это швы Windows GDI не слишком нравится мне, когда речь идет о 16-битных изображениях в оттенках серого.
Любые другие идеи, как решить эту проблему, будут очень оценены.
спасибо