QImage加载特大图片
今天遇到一个问题,下载一个图片的大小是1w*1w的,直接用QImage加载返回为空,导致一系列的bug。
解决方案
初步是思路是:是否可以有一个办法是变读变缩放,达到我们预期的大小,因为太大加载显示意义不大。通过了解,目前可能无法一次性加载,否则内存吃不消。
通过了解,出了qimage以外,qt提供了QImageReader的类,尝试查看了下QImageReader文档,发现setScaledSize接口,通过测试,成功的实现了缩放,但图片如果太大,可能比较耗时,可以开个线程去实现。
1##以下是测试demo##
qDebug()<<Q_FUNC_INFO<<__LINE__;
QImageReader ir("d://20000.png");
qDebug()<<Q_FUNC_INFO<<__LINE__;
qDebug()<<ir.size();
QSize size(1000,1000);
ir.setScaledSize(size);
qDebug()<<Q_FUNC_INFO<<__LINE__;
auto image = ir.read();
auto ok = image.save("d://1.png");
qDebug()<<Q_FUNC_INFO<<ok;



914

被折叠的 条评论
为什么被折叠?



