2013-10-06 83 views
1

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

回答

4

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

您可以使用pixel方法QImage访问任意像素的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)); 
} 
相关问题