I think the headline already explains what I want to know.
Is there a possible way to open and save images with 16-bit with Qt? And I don't mean the 3*8=24bit or 4*8=32bit, what is quite the same as a pure 8-bit image, I mean pure 16-bit for R, G and B.
Contrary to what Patrice says, there is no 16 bits per component format in QImage
. The most you can get is QImage::Format_ARGB32
at 8 bits per component. Even if you used 8 bits indexed mode, the color tables do not support more than 8 bits per component. Moreover, the QImageIOHandler
class works in terms of QImage
, so you cannot create a custom image format plug-in to work with 16 bits per color component, unfortunately.
QImage::Format not define pure 16 bit but can define 10 bit.
QImage::Format_A2RGB30_Premultiplied
( http://doc.qt.io/qt-5/qimage.html ), can use RGB 10 bits per channel (0...1).
But if use QImage::setPixel
they still use 8 bit per channel for define pixel from QColor
.
As others already mentioned, there is no format with 16 bits per component supported in Qt for now.
However there is a request opened to implement this, with a patch attached: https://bugreports.qt.io/browse/QTBUG-45858
Not sure what is the status of this, and if it will get integrated.
Qt5.13 is supported
here is the example
QImage raw((uchar*)byte.data(), 480, 640, QImage::Format_Grayscale16);
raw.save(QString("%1/depth.raw").arg(fileName));
use the flag QImage::Format_Grayscale16
为此,您可以使用 libpng (png++)。
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.