我正在开发一个嵌入式项目,我目前正在使用LodePNG。这个lib运行良好,重量很轻。
唯一的问题是,对于每个PNG加载,必须释放内存。是否有可能重用load函数分配的内存? 我无法在手册中找到这样的方法。
程序一直在加载PNG图像,因此重复使用为先前图像分配的内存会很棒!
还有其他方法吗?我需要24位RGB原始数据,我需要一个轻量级的解决方案,而且代码必须是独立于平台的。
答案 0 :(得分:0)
lodepng允许使用自定义分配器,请参阅lodepng.cpp:53
:
The malloc, realloc and free functions defined here with "lodepng_" in front
of the name, so that you can easily change them to others related to
your platform if needed. Everything else in the code calls these. Pass
-DLODEPNG_NO_COMPILE_ALLOCATORS to the compiler, or comment out
#define LODEPNG_COMPILE_ALLOCATORS in the header, to disable the ones here and
define them in your own project's source files without needing to change
lodepng source code. Don't forget to remove "static" if you copypaste
them from here.
我猜你可以定义一个重用固定内存块的分配器。