2010-09-17 98 views
3

基本上我想使用libpng将位图转换为png,而不是将它输出到FILE *我想将它输出到char *。我已经看过this相关的帖子,但我没有看到位图数据实际使用的位置。任何帮助,将不胜感激。使用libpng帮助将位图转换为内存中的png

+0

应该标记为C而不是C++? – John 2010-09-17 23:22:20

回答

4

使用png_set_write_fn函数将写入重定向到您自己的函数;这个你需要编写的函数可以以你想要的任何方式存储输出。

请参阅文档http://www.libpng.org/pub/png/libpng-manual.txt

+0

非常感谢您的帮助。我终于解决了它,这是我的解决方案,以防其他人像我一样喜欢noobot: 首先设置您的row_pointers,以便每个row_pointer指向您的位图中的一行。 (row_pointers [i] = bitmap [i * bitmap_width * 3],如果它是RGB位图,则为3)。 然后设置行: png_set_rows(png_ptr,info_ptr,row_pointers); 然后调用: png_set_write_fn(...) 最后通过调用您的write_fn来调用: png_write_png(...) – dlee123 2010-09-21 00:42:39