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

前端 未结 5 868
伪装坚强ぢ
伪装坚强ぢ 2021-01-27 03:43

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,

相关标签:
5条回答
  • 2021-01-27 04:22

    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.

    0 讨论(0)
  • 2021-01-27 04:22

    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.

    0 讨论(0)
  • 2021-01-27 04:25

    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.

    0 讨论(0)
  • 2021-01-27 04:26

    You can use libpng (png++) for that purpose.

    0 讨论(0)
  • 2021-01-27 04:35

    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

    0 讨论(0)
提交回复
热议问题