• 6516阅读
  • 2回复

out of range [复制链接]

上一主题 下一主题
离线zhaonash
 

只看楼主 倒序阅读 楼主  发表于: 2006-05-24
我对图像进行处理,首先将它转为灰度图,我写的一段程序.对于小图像,能够正常运行,如果图像太大(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));
爱因斯坦说: 每个人都可以是99%的勤奋+1%的天赋,但1%的天赋是最关键的。我只信前半句!
离线zhaonash

只看该作者 1楼 发表于: 2006-05-24
这个帖子貌似应该放在 Qt Programming 里面
爱因斯坦说: 每个人都可以是99%的勤奋+1%的天赋,但1%的天赋是最关键的。我只信前半句!
离线tieliu

只看该作者 2楼 发表于: 2006-05-25
我试过,没有出现你那样的错误。不过或转换不同格式的图片,会出现不同的效果。

好像和图片大小没有关系。出问题的原因可能是因为图片文件的颜色深度获这格式有关系。
你把同一张图片用图片编辑器(比如windows的画图工具)分别保存为32位位图,24位位图,256色位图。然后分别用你的程序转化一下看看,结果是不一样的。
快速回复
限100 字节
 
上一个 下一个