将BMP文件转换为内存中的PNG文件

时间:2011-10-31 16:42:07

标签: c windows png bmp

  

可能重复:
  Convert bitmap to PNG in-memory in C++ (win32)

我有一个BMP文件作为char*缓冲区。我想将此BMP文件转换为内存中的PNG文件。我已经尝试了,并且搜索了一下,但我找不到任何有用的东西。

我可以假设Windows XP或更高版本,没有.NET和C99。

2 个答案:

答案 0 :(得分:1)

ImageMagick有一个C API。我认为,因为它允许你对图像进行各种转换,那些图像保存在内存中,所以你应该能够将它作为BMP加载并最终保存为PNG。

答案 1 :(得分:0)

在记忆意味着,你可能必须自己做。您必须了解BMP和PNG文件的标头。成功创建标题后,您可以复制数据,但数据不会以相同的形式存储在BMP和PNG中,因此这是非常耗时的任务。

另一种方法是使用外部工具并从C代码调用它来进行转换。然而,内存中的问题将成为问题。