我是通过从文件加载图片来创建QGraphicsPixmapItems
。
bool PixMapItem::loadItemFromFile(const QString &filename)
{
QPixmap p;
if(!p.load(filename))
return false;
setPixmap(p);
#ifdef NOT_QT_4
m_itemSize = p.size()/p.devicePixelRatio();
#else
m_itemSize = p.size();
#endif
return true;
}
来电者:
item->loadItemFromFile(filename);
item->adjustForMaxSize(maxSize);
我想知道该项目使用的内存如何取决于图像文件大小。
1)图像类型 - 存储在项目中的Pixmap的编码是最小的,还是总是32位,或者有没有办法设置它?
2)假设在加载后立即调整项目大小以匹配特定大小(见上文),实际图像大小是否会影响项目内存大小?如果我缩放像素图而不是项目本身,内存大小会更好吗?
答案 0 :(得分:1)
让我试着回答一下,也许它可以帮到你:
请注意,像素图中的像素数据是内部的,由...管理 基础窗口系统。
QPixmap是为屏幕上的绘画性能而设计的,如果你想要更好地处理IO(形成图像,减少颜色等),请使用QImage。您还可以使用画家将QImage渲染到屏幕,但与QPixmap相比,它会更慢。