您能帮我看一下,这样写对吗?谢谢,但是我这样写了后输出的图片有问题。
#include <QtGui>
int main (int argc,char *argv[])
{
QApplication app(argc,argv);
QImage colourImg("test.png");
QSize colourImgSize = colourImg.size();
int width = colourImgSize.rwidth();
int height = colourImgSize.rheight();
unsigned char *colourImgDataPtr = colourImg.bits();
QImage grayImg(colourImgSize, QImage::Format_Indexed8);
unsigned char *grayImgDataPtr = grayImg.bits();
for(int i = 0; i < height; i++)
{
for(int j = 0; j < width; j++)
{
*grayImgDataPtr = *(colourImgDataPtr + 1);
colourImgDataPtr += 4;
grayImgDataPtr++;
}
}
QVector<QRgb> grayColourTable;
QRgb colourtable[255];
for(int i = 0; i < 256; i++)
{
colourtable=qRgb(i,i,i);
grayColourTable.append(colourtable);
}
grayImg.setColorTable(grayColourTable);
grayImg.save("grayImage.bmp", "bmp");
app.exec();
}