libpng(失敗中)

本物のページはこちら→libpng

Included page "libpng" does not exist (create it now)

OpenGLで描いた絵をアルファ付きで保存したい!と思って調べた。
C++でpngを読んだり書いたりするためのライブラリ。

これを使うには、zlibも必要
zlib for windowsのDeveloperFilesをインストールする
と.hと.libが手に入るけど、これをコンパイルすると、今度は
unistd.hがありませんと言われる。
この記事[1]のunistd.hを使う。
libpngのページの
Developer filesをダウンロードしすると.libとincludeがある

#include <png.h>//libpng
#pragma comment(lib,"libpng.lib")

セットアップ

次に、png_structpng_infoを確保して初期化する。

png_structp png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
        if (png_ptr == NULL) {assert(!"失敗");}
        png_infop info_ptr = png_create_info_struct(png_ptr);//後にpngファイルのヘッダになる
        if (info_ptr == NULL) {assert(!"失敗2");}

デフォルトではlibpngは内部でC言語標準のfwrite()を使っている。
FILE *fp = fopen("./output.png", "wb");//バイナリモードにすること
png_init_io(png_ptr, fp);//ここでファイルストリームと結びつく

検索してもあんまり見つからないし、
OpenCVかGDIを使おうかなぁ。
Bibliography
1. Windows(VC++)でunistd.h….参考になったけど、私のダウンロードしたバージョン(libpng1.4)とは互換性がなかったようだ。

サポートサイト Wikidot.com