QImage é capaz de abrir e renderizar imagens de 16 bits puros?
Pergunta
Eu acho que o título já explica o que eu quero saber.
Existe uma maneira possível para abrir e salvar imagens com 16 bits com Qt? E não me refiro a 3 * 8 = 24 bits ou 4 * 8 = 32 bits, o que é exatamente o mesmo como uma imagem de 8-bit puro, quero dizer puro de 16 bits para R, G e B.
Solução
Ao contrário do que Patrice diz, não há 16 bits por formato de componente em QImage
. O máximo que você pode obter é QImage::Format_ARGB32
em 8 bits por componente. Mesmo se você usou 8 bits modo indexado, as tabelas de cores não suportam mais de 8 bits por componente. Além disso, a classe QImageIOHandler
funciona em termos de QImage
, para que você não pode criar um plug-in formato de imagem personalizada para trabalhar com 16 bits por componente de cor, infelizmente.
Outras dicas
Você pode usar libpng (png ++) para esse fim.
QImage :: Format não define puro de 16 bits, mas pode definir 10 bit.
QImage::Format_A2RGB30_Premultiplied
( http://doc.qt.io/qt-5/qimage.html), pode usar RGB 10 bits por canal (0 ... 1).
Mas se o uso QImage::setPixel
eles ainda usam 8 bits por canal, para definir pixel QColor
.
Como outros já mencionado, não existe um formato com 16 bits por componente de suporte em Qt para agora.
No entanto, há um pedido aberto para implementar isso, com um patch anexado: https: // relatos de erros .qt.io / browse / QTBUG-45858
Não tenho certeza qual é o status desta, e se ele vai ficar integrado.