Qt加载特大图片

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;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值