今回は、libpngを試す。
https://refspecs.linuxbase.org/LSB_3.1.0/LSB-Desktop-generic/LSB-Desktop-generic/libpng12.png.write.png.1.html
libpng 1.2.5 manual
PNG C[WÌæèµ¢
libpngのインストールとC言語での使用方法・使用例 | だえうホームページ
まず、yum search。
$ yum search libpng Fedora Modular 29 - x86_64 446 kB/s | 1.5 MB 00:03 Fedora Modular 29 - x86_64 - Updates 526 kB/s | 2.1 MB 00:04 Fedora 29 - x86_64 - Updates 1.7 MB/s | 30 MB 00:17 Fedora 29 - x86_64 1.7 MB/s | 62 MB 00:36 ============================ 名前 完全一致: libpng ============================= libpng.i686 : A library of functions for manipulating PNG image format files libpng.x86_64 : A library of functions for manipulating PNG image format files =========================== 概要 & 名前 一致: libpng =========================== mingw32-libpng.noarch : MinGW Windows Libpng library mingw64-libpng.noarch : MinGW Windows Libpng library libpng12-devel.i686 : Development files for libpng 1.2 libpng12-devel.x86_64 : Development files for libpng 1.2 libpng10.i686 : Old version of libpng, needed to run old binaries libpng10.x86_64 : Old version of libpng, needed to run old binaries libpng10-devel.i686 : Development tools for version 1.0 of libpng libpng10-devel.x86_64 : Development tools for version 1.0 of libpng libpng12.i686 : Old version of libpng, needed to run old binaries libpng12.x86_64 : Old version of libpng, needed to run old binaries libpng15.i686 : Old version of libpng, needed to run old binaries libpng15.x86_64 : Old version of libpng, needed to run old binaries mingw32-libpng-static.noarch : Static version of MinGW Windows Libpng library mingw64-libpng-static.noarch : Static version of MinGW Windows Libpng library ============================== 名前 一致: libpng =============================== libpng-devel.i686 : Development tools for programs to manipulate PNG image : format files libpng-devel.x86_64 : Development tools for programs to manipulate PNG image : format files libpng-tools.x86_64 : Tools for PNG image format file library libpng-static.i686 : Static PNG image format file library libpng-static.x86_64 : Static PNG image format file library $
で、yum install。
$ sudo yum install libpng libpng-devel [sudo] bg1 のパスワード: メタデータの期限切れの最終確認: x:xx:xx 時間前の xxxx年xx月xx日 xx時xx分xx秒 に実施しました。 パッケージ libpng-2:1.6.34-6.fc29.x86_64 は既にインストールされています。 パッケージ libpng-devel-2:1.6.34-6.fc29.x86_64 は既にインストールされています。 依存関係が解決しました。 行うべきことはありません。 完了しました! $
まあ、入ってるよね。
libjpegの時のビットマップ処理関数も使って、
png_write_pngで書き込む。
これは高水準APIらしい。
下から上に入れるところと、RGBじゃなくてBGRというところがポイント。
$ ls bitmap.c bitmap.h main main.c test.bmp $ vi main.c $ gcc -o main main.c bitmap.c -lpng $ ./main $ ls bitmap.c bitmap.h main main.c test.bmp test.png $
とすると、
BMP形式からPNG形式に変換できた。
(粗いのは、libjpegのjpeg_start_decompressの項で生成したbmpファイルだから。)
Sample/libpng/png_write_png/png_write_png/src/png_write_png at master · bg1bgst333/Sample · GitHub