在Qt中处理非常大的图像

时间:2011-01-25 19:26:01

标签: c++ qt large-files

我无法让Qt处理超过10,000X10,000的图像。我正在处理大约每个2GB的巨大卫星图像。我考虑使用内存映射,但图像仍然占用内存空间。

QFile file("c://qt//a.ras");
file.open(QIODevice::ReadOnly);
qint64 size = file.size();
uchar *img=file.map(0,size);
QImage I(img,w,h,QImage::Format_ARGB32);

有人能告诉我在Qt中处理大图像的更有效方法吗?

3 个答案:

答案 0 :(得分:8)

Qgraphicsview和一组图像图块,视图会为您处理所有滚动和世界坐标。
然后你必须提前将图像预先切成碎片或者动态地拉出一部分图像数据

答案 1 :(得分:5)

您是否可以使用某种平铺策略来分段加载和操作图像,而不是一次性加载和操作图像?

答案 2 :(得分:0)

我猜你正在使用32位操作系统而你的地址空间不足。最简单的解决方案可能是使用64位操作系统(例如Windows 7 x64)并将您的应用程序编译为64位。您的目标平台是什么(Windows,Mac OS X,Linux等)?

This可能会有所帮助。