2010-09-17 97 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