Может ли QImage открывать и отображать чистые 16-битные изображения?

StackOverflow https://stackoverflow.com/questions/1846106

  •  12-09-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

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

Другие советы

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top