在 Qt 中处理非常大的图像

发布于 2024-10-14 13:24:36 字数 302 浏览 2 评论 0原文

我无法让 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 中的大图像?

I can't get Qt to work on images beyond 10,000X10,000. I'm dealing with huge satellite images that are around 2GB each. I considered using memory mapping but the image still occupies space in memory.

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);

Can anyone tell me a more efficient way to deal with large images in Qt?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

权谋诡计 2024-10-21 13:24:36

Qgraphicsview 和一组图像图块,该视图处理所有滚动和世界坐标为你。
然后,您只需提前将图像预先切割成图块,或者动态提取一部分图像数据

Qgraphicsview and a set of image tiles, the view handles all the scrolling and world coords for you.
Then you just have to either pre-chop the images into tiles in advance or pull a section of image data on the fly

久夏青 2024-10-21 13:24:36

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

Can you use some sort of tiling strategy to load and manipulate the image piecewise, instead of all at once?

只怪假的太真实 2024-10-21 13:24:36

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

可能会有所帮助。

I'm guessing you're using a 32-bit OS and you're running out of address space. The easiest solution may be to use a 64-bit OS (e.g. Windows 7 x64) and compile your app for 64-bit. What is your target platform (Windows, Mac OS X, Linux etc.)?

This may help.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文