有人可以推荐一个简单易用的 PNG库,用于c ++或.NET吗?它需要做的就是:加载大的PNG图像(比如20000x20000),并告诉我每个像素的颜色。
.NET中的位图类无法加载大图像,抛出OutOfMemory异常。
我花了一些时间在google上查看c ++库,但是所有这些都比我需要的要多得多,而且它们的使用对我来说太复杂了。
答案 0 :(得分:6)
PNG文件的事实标准库是LibPNG。它不是世界上设计最好的API,但如果您只是完成其中一个教程中的步骤,那就很难搞砸了。
您可能会发现最简单的方法是将API包装在您自己的几个简单函数(或类)中。完成后,你应该好好去。
答案 1 :(得分:4)
答案 2 :(得分:2)
如果选择C#,请尝试PNGCS。这个场景完成了(我自己,最初是Java),它允许你逐行读写,不需要在内存中包含所有数据。
我测试过它可以读写大文件(30000 x 30000像素,磁盘超过2GB),at least in Java
答案 3 :(得分:1)
对于C ++:
根据您可以使用的许可证,您可以查看:
DeVIL:http://openil.sourceforge.net/(a有点过时,但还是一个不错的选择)(Linux,Win)
ImageMagick:http://www.imagemagick.org/script/index.php(维护良好,所有平台)
都支持各种输入和输出格式。
编辑:现在也在Github:https://github.com/DentonW/DevIL