• 3895阅读
  • 2回复

[提问]截图后保存图片 [复制链接]

上一主题 下一主题
离线zdh8675
 

只看楼主 倒序阅读 楼主  发表于: 2012-01-07
用Qt写了一段截图的代码,代码如下:
double imageWidth = ui.centralWidget->width();
double imageHeight= ui.centralWidget->height();
QPixmap pixmap = QPixmap::grabWindow(ui.centralWidget->winId(),0,0,imageWidth,imageHeight);
pixmap.save(".\\data\\My\\Print\\NEW.JPG", "JPG");

这段代码在我的台机机器上(显卡是NVIDIA GeForce GT 520)运行,能保存下来一幅我预想要的图片
但是,这段代码在我新买的笔记本上(联想T420,显卡是NVIDIA NVS 4200M)运行完成之后,保存下来的图片是一个灰色的图片,什么内容也看不到。请问这是什么原因呢。
另外我在公司的几台老一点的机器上测试了一下,也都是能保存出我想要的截图,但是,我又用公司这几天刚买的机器(有一台是图形工作站)测试了一下,发现保存出来的图片跟我用那个T420笔记本保存下来的图片是同一个效果的,都是一副灰色的图片,不是实际的截图图片。
离线zdh8675

只看该作者 1楼 发表于: 2012-01-07
把JPG都换成PNG,问题就解决了。但我还是不知道为什么。。。
离线roywillow

只看该作者 2楼 发表于: 2012-01-07
插件问题
Qt原生支持png,其他所有的图像都要用插件来支持
QtSDK安装/自己编译的时候会把库的路径写入库中,所以会自动搜索安装路径中的插件
但是拿到别的机器上之后那个路径就不对了,所以就得自己提供上插件了
根据你的情况,你得在程序目录下把plugin里imageformat(但愿我没记错这个名字)这个文件夹拷贝过去,里面具体的内容自己斟酌吧
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
快速回复
限100 字节
 
上一个 下一个