c++ - 如何检测 QImage 消耗最少 RAM 的足够格式(数据类型)?

标签 c++ qt image-processing computer-vision qimage

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

自动检测图像类型的任何想法或代码或方法,如(QImage::Format_RGB32QImage::Format_RGB16或...)对于QImage

最佳答案

QImage正在继承QPaintDevice .它不是图像的二进制格式,也不是包含或类似的任何东西。把它想象成一 block 内存,上面有一些方法和成员属性,可以解释那 block 内存的内容,或者你可以如何在那 block 内存上绘制像素。例如,方法 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);

关于c++ - 如何检测 QImage 消耗最少 RAM 的足够格式(数据类型)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58787149/

相关文章:

c++ - 如何摆脱C++中的空白行?

c++ - 为什么需要在列表拼接功能cpp中使用列表参数

c++ - windows – Qt创建和使用自制静态库

c++ - 如果底层 Windows 是 32 位或 64 位版本,如何在正在运行的 C++/Qt 应用程序中进行检测?

php - move_uploaded_file 不起作用,没有错误

opencv - 反转实值索引网格

字符串、列表、 vector 的默认构造函数的 C++ 成本

c++ - 'Chunk * _chunk = new (size) Chunk(size)' 是什么意思?

c++ - 如何在 QGraphicsView 的边框上制作标尺

c++ - 任何指标都可以衡量图像的渐晕效果?