向各位大侠请教: 在QT中对位图进行灰度变换,但是不知道怎样获取各个像素的三色值?看文档是提供了qcolor类和相应的方法,但是不会用.这是书上的源码,但结果根本达不到灰度转换的结果????
void MainWidget::imageGrayscale()
{
if(!image)
return;
uint *p;
uint change;
for(int i=0;i<(image->height());i++)
{
for(int j=0;j<(image->width());j+=4)
{
p=(uint *) (image->scanLine(i)+j);
change=(p[1]+p[2]+p[3])/3;
p[1]=p[2]=p[3]=change;
}
}
showImage();
}
从书上这些代码看R,G,B三色值是直接通过j+=4来控制,但运行后图像还是彩色,只是画面变花了!