簡體   English   中英

QImage 是否能夠打開和渲染純 16 位圖像?

[英]Is QImage able to open and render pure 16-bit images?

我想標題已經解釋了我想知道的。
有沒有辦法用 Qt 打開和保存 16 位圖像? 而且我不是指 3*8=24bit 或 4*8=32bit,這與純 8 位圖像完全相同,我指的是 R、G 和 B 的純 16 位。

與 Patrice 所說的相反, QImage每個組件格式沒有 16 位。 您可以獲得的最多是QImage::Format_ARGB32 ,每個組件 8 位。 即使您使用 8 位索引模式,顏色表也不支持每個組件超過 8 位。 此外, QImageIOHandler類在QImage方面工作,因此QImageIOHandler是,您無法創建自定義圖像格式插件來處理每個顏色分量 16 位。

QImage::Format 不能定義純 16 位,但可以定義 10 位。
QImage::Format_A2RGB30_Premultiplied ( http://doc.qt.io/qt-5/qimage.html ),每個通道可以使用 RGB 10 位 (0...1)。
但是如果使用QImage::setPixel他們仍然使用每個通道 8 位來定義來自QColor像素。

正如其他人已經提到的,Qt 目前不支持每個組件 16 位的格式。

但是,已打開一個請求來實現此功能,並附有補丁: https : //bugreports.qt.io/browse/QTBUG-45858

不確定它的狀態如何,以及它是否會被集成。

支持Qt5.13

這是例子

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

使用標志QImage::Format_Grayscale16

為此,您可以使用 libpng (png++)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM