Qt 保存jpg图片
我用QImage加载了一个图片,然后修改里面的象素值,然后再用save保存,再用另外一个QImage加载进来,图片的象素跟保存时的象素不一样,为什么呢?望高手帮忙,刚开始学QT,谢谢了代码大概如下:
QImage pImage;
pImage.load("c:\d.jpg");
QImage pMyImage(pImage);
int pWidth = pImage.width();
int pHeight = pImage.height();
for(int i=0; i<pWidth; i++)
{
for(int j=0;j<pHeight;j++)
{
QRgb pRgb= pImage.pixel(i,j); //----1
.....
.....//对pRgb进行处理
.....
pMyImage.setPixel(i,j,pRgb); //----2
}
}
pMyImage.save("c:\p.jpg");
QImage pRes;
pRes.load("c:\p.jpg");
QRgb pRes= pImage.pixel(0,0); //----3
当i=j=0时,上面1处事是d.jpg的RGB值pRgb,对它进行一定的转换后得到新的RGB值pRgb
但是当调用save保存为p.jpg后,再次打开p.jpg获取其第一个RGB得到的值3与2处的同样
是(0,0)的RGB不一样,这是哪里不对呢?如果要实现这一的功能应该怎么完成呢?
我的意思就是要对a.jpg进行处理然后保存为b.jpg,然后以后要重新加载b.jpg来进行处理。
请问高手该怎么处理才行呢?谢谢了!
--------------------编程问答-------------------- 我怀疑你压根就没有文件操作过,因为你的文件路径全错了。
应该是 c:\\d.jpg --------------------编程问答-------------------- 不好意思,我打错了,我就是用的“c:\\d.jpg”这个哈 --------------------编程问答-------------------- jpg是压缩格式。我觉得你用bmp图片测试下应该没什么问题的 --------------------编程问答-------------------- Qt写保存图片的slot槽函数? --------------------编程问答-------------------- bool save ( const QString & fileName, const char * format = 0, int quality = -1 ) const
你保存的图片就是压缩后的,所以加载回来效果就是差的.
这么保存pMyImage.save("c:\p.jpg,0,100");就ok了
散分吧
补充:移动开发 , Qt