• 7407阅读
  • 3回复

QPixmap和QGraphicsPixmapItem放大图片内存差距很大,懂的来说两句 [复制链接]

上一主题 下一主题
离线xlqwe
 

只看楼主 倒序阅读 楼主  发表于: 2012-08-22
   最近在做图片缩放的功能,最开始使用QScrollArea里面加label,pixmap放在label里面,缩放的时候直接控制label的size,结果是图片放大后内存占用变的很大,大概400M
  后来使用QGraphicsView和QGraphicsPixmapItem做缩放,内存基本没变,而且很流畅,不知道内部处理有什么不同~~
  有没有懂的,说说吧~
离线robertkun

只看该作者 1楼 发表于: 2012-08-28
这个帖子挺有意思,顶一下。。
请问楼主把图片放大到了什么程度,竟然占了400M ?

个人觉的在QGraphicsView中放大一个ITEM,如果ITEM超出view的显示范围后,
view应该是做了优化处理的,图片看不到的地方就被优化了。。不知道是不是这样。。
                                              简单的生活使人快乐!
离线xlqwe

只看该作者 2楼 发表于: 2012-08-28
回 1楼(robertkun) 的帖子
差不多有十几倍吧,用label显示占用内存很凶的,照相机照出的照片大概5、6M,放在label里面差不多占50M,感觉QGraphicsView估计主要加载图片在视口的部分,而label要加载全部图片
离线yfx2003

只看该作者 3楼 发表于: 2012-09-28
看看 QGraphicsView 类的说明,可以很轻松地处理上百万的item的,所以,这点儿应该不算啥

估计原理就是LOD,意思跟大家说的类似
www.qtcn.org/gpq4/
ajaxref.okajax.com/
快速回复
限100 字节
 
上一个 下一个