【发布时间】:2016-07-22 10:49:38
【问题描述】:
所以我编写了一个 C++ 程序,它可以生成非常高分辨率的图片(分形)。 我使用 fstream 将所有数据保存在 .ppm 文件中。
一切正常,但是当我进入非常高分辨率 (38400x21600) 时,ppm 文件大约有 8 GB。 然而,使用我的 16 GB 内存,我仍然无法转换该图片。我下载了几个转换器,但他们无法处理。当我尝试“导出为...”时,甚至 Gimp 也崩溃了。
那么,有谁知道可以处理非常大的 ppm 文件的好转换器吗?事实上,我什至想超过 100 GB。我不在乎它是否很慢,它应该可以工作。
如果没有这样的转换器:有没有更好的方式来 std::ofstream ?或许,有没有一个库可以自动生成 PNG 文件?
感谢您的帮助!
编辑:我还问自己保存这些大图像的最佳格式是什么。我研究过,JPEG 看起来很漂亮(尺寸小,质量仍然不错)。但是可能有更好的格式吗?让我知道。谢谢
【问题讨论】:
-
.ppm效率极低。您可以使用 C++ 代码中的 libpng 或 libjpeg 直接写入所需的输出格式。 -
也就是说,您是否尝试过 ImageMagick 的
convert实用程序?总的来说,该捆绑包非常强大。 -
不,我去看看。感谢您的帮助
-
ImageMagick 工作。谢谢!
标签: c++ image converter fstream ppm