标题:out of range
作者:zhaonash
日期:2006-05-24 20:44
内容:
我对图像进行处理,首先将它转为灰度图,我写的一段程序.对于小图像,能够正常运行,如果图像太大(640*480)
编译没有错,执行的时候就会说QImage::setPixel: index=-2039680 out of range,这是怎么回事?
在转化为灰度图的过程中使用了函数QImage::setPixel,转换部分代码如下:
QRgb px = image.pixel(x,y); /*得到这个像素点的RGB值*/
image.setPixel(x,y,qRgb(( 299*qRed(px) +587*qGreen(px)+ 114*qBlue(px))/1000,
( 299*qRed(px) +587*qGreen(px)+ 114*qBlue(px))/1000,
( 299*qRed(px) +587*qGreen(px)+ 114*qBlue(px))/1000));
#1 [zhaonash 05-24 20:53]
这个帖子貌似应该放在 Qt Programming 里面
#2 [tieliu 05-25 11:03]
我试过,没有出现你那样的错误。不过或转换不同格式的图片,会出现不同的效果。
好像和图片大小没有关系。出问题的原因可能是因为图片文件的颜色深度获这格式有关系。
你把同一张图片用图片编辑器(比如windows的画图工具)分别保存为32位位图,24位位图,256色位图。然后分别用你的程序转化一下看看,结果是不一样的。