当前位置: 代码迷 >> QT开发 >> QImage加载的png所占内存过大解决办法
  详细解决方案

QImage加载的png所占内存过大解决办法

热度:383   发布时间:2016-04-25 02:59:21.0
QImage加载的png所占内存过大
有一个图片
png
427KB
2480 X 3507

使用QImage* pImage = new QImage(strImagePath);后

pImage->byteCount() = 34789440
即33M

图片从427KB ==> 33M, 扩大了79倍。
虽然知道png是压缩的,加载到内存会变大,但是也不该放大这么多啊。。
------解决思路----------------------
应该没什么问题,假定你的png是的 BPP 是 32

>>> 2480*3507*4
34789440

话说,不正是因为位图数据保存时太占空间(传输太占带宽),才有 png/jpeg/jp2 等东西存在么,不就是为了是这个压缩比尽可能大么?。

------解决思路----------------------
1. 用QImage加载png
2. QImage.scaled把图片缩放到要显示的合适大小
3. 把QImage转换成QPixmap显示
  相关解决方案