Может ли QImage открывать и отображать чистые 16-битные изображения? - PullRequest
1 голос
/ 04 декабря 2009

Я думаю, что заголовок уже объясняет, что я хочу знать.
Есть ли возможный способ открывать и сохранять 16-битные изображения с помощью Qt? И я не имею в виду 3 * 8 = 24 бита или 4 * 8 = 32 бита, что совершенно совпадает с чистым 8-битным изображением, я имею в виду чистый 16-бит для R, G и B.

Ответы [ 4 ]

4 голосов
/ 06 декабря 2009

Вопреки тому, что говорит Патрис, в QImage нет 16 бит на формат компонента. Максимум, что вы можете получить, это QImage::Format_ARGB32 при 8 битах на компонент. Даже если вы использовали 8-битный индексированный режим, таблицы цветов не поддерживают более 8 бит на компонент. Более того, класс QImageIOHandler работает в терминах QImage, поэтому, к сожалению, вы не можете создать плагин нестандартного формата изображения для работы с 16 битами на компонент цвета.

0 голосов
/ 29 октября 2015

Как уже упоминалось, пока в Qt не поддерживается формат с 16 битами на компонент.

Однако для реализации этого открыт запрос с прикрепленным патчем: https://bugreports.qt.io/browse/QTBUG-45858

Не уверен, каков статус этого и будет ли он интегрирован.

0 голосов
/ 12 сентября 2015

QImage :: Format не определяет чистый 16 бит, но может определять 10 бит.
QImage::Format_A2RGB30_Premultiplied (http://doc.qt.io/qt-5/qimage.html), может использовать 10 бит RGB на канал (0 ... 1).
Но если использовать QImage::setPixel, они все равно используют 8 бит на канал для определения пикселя от QColor.

0 голосов
/ 08 марта 2012

Вы можете использовать libpng (png ++) для этой цели.

...