如何检测足够的格式(数据类型)以使QImage占用最少的RAM?

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

[如果我在图像标题中没有关于Dpi或图像类型(RGB16或RGBA32或...)的任何信息,我想在Qt的QImage中加载图像时使用最少的RAM。

是否有任何想法或代码或方法可以自动检测QImage::Format_RGB32的图像类型(QImage::Format_RGB16QImage或...)?

c++ qt image-processing computer-vision qimage
1个回答
1
投票

QImage正在继承QPaintDevice。它不是图像的二进制格式,也不包含或类似的东西。可以将其想象为一块具有某些方法和成员属性的内存,这些方法和成员属性可以解释该内存的内容或如何在该内存上绘制像素。例如,方法QImage::load将使用QImageReader实例加载JPG,PNG,BMP等图像文件,并初始化QImage保留该数据所需的所有内容。 QImageReader可以自动检测图像格式。然后,您将可以使用QImage方法转换此QImage::convertToFormat实例。

QImage img;
img.load("/some/path/to/sample.png");
QImage converted = img.convertToFormat(QImage::Format_RGB16);
© www.soinside.com 2019 - 2024. All rights reserved.