QImage能够打开和渲染纯16位图片吗?

问题描述 投票:1回答:5

我想标题已经说明了我想知道的问题。有没有可能用Qt打开和保存16位的图片?我指的不是3*8=24bit或4*8=32bit,什么是相当的纯8位图像,我指的是R、G、B的纯16位。

image qt qt4 rgb qimage
5个回答
4
投票

与Patrice所说的相反,在Qt中没有16位的组件格式。QImage. 你最多可以得到的是 QImage::Format_ARGB32 每个分量为8位。即使你使用8位索引模式,颜色表也不支持每个组件超过8位。此外, QImageIOHandler 阶级性 QImage所以你不能创建一个自定义的图像格式插件来处理每个颜色组件的16位,很遗憾。


0
投票

你可以使用libpng (png++)来实现这个目的。


0
投票

QImage::Format不能定义纯16位,但可以定义10位。QImage::Format_A2RGB30_Premultiplied (http:/doc.qt.ioqt-5qimage.html。),可以使用RGB每通道10位(0...1)。但如果使用 QImage::setPixel 他们仍然使用8位/通道来定义像素,来自于 QColor.


0
投票

正如其他人已经提到的,目前Qt中还没有支持每个组件16位的格式。

然而,有一个请求被打开来实现这一点,并附上了一个补丁。https:/bugreports.qt.iobrowseQTBUG-45858。

不知道这个情况如何,是否会被集成。


0
投票

Qt5.13 是支持的

下面是例子

QImage raw((uchar*)byte.data(), 480, 640, QImage::Format_Grayscale16);
raw.save(QString("%1/depth.raw").arg(fileName));

打旗语 QImage::格式化_灰度16

© www.soinside.com 2019 - 2024. All rights reserved.