[英]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.