如何使用Qt获取BMP中每个像素的RGB值?

时间:2013-10-06 08:42:53

标签: qt bmp compression

我需要编写简单的程序,可以打开任何BMP文件,使用RLE压缩,保存结果,再次打开它并将文件解压缩到普通BMP。 问题是我不知道如何获取文件的RGB组件。有很多版本的BMP标准。 我知道如何在Qt中打开它,如何创建,以及如何加载到widget,但我找不到一种方法来读取一个bytearray中的文件信息和头文件以及另一个中的RGB值。在Qt中有一些方法可以做到吗?

1 个答案:

答案 0 :(得分:4)

QImage会为您加载图片。 BMP是supported formats之一。您不应该关心自Qt内部处理它以来使用的BMP标准。

您可以使用QImage的{​​{3}}方法访问任何像素的RGB值。

QImage image;
image.load("myimage.bmp");
QVector<QRgb> imageRGBValues;

for (unsigned i=0; i<image.width(); ++i)
{
   for (unsigned j=0; j<image.height(); ++j)
      imageRGBValues.push_back(image.pixel(i,j));
}