C言語でpng画像を生成したいと思い、その方法を調査したので備忘録として以下に示します。
試験環境
いつもの如くOSはdebianを使用します。
GDグラフィックライブラリとは
- Wikipediaより抜粋
GDグラフィックライブラリ(GD Graphics Library)はトーマス・ボーテル(Thomas Boutell)他によって作られたイメージを動的に操作するライブラリである。本来のプログラミング言語はANSI Cであるが、他の多くのプログラミング言語とのインタフェースが作成されている。GIF、JPEG、PNG、WBMP を生成できる。
- GD Graphics Library開発サイト https://libgd.github.io/
インストール方法
debian環境では、以下のコマンドでインストールできます。
# apt update # apt install libgd-dev
サンプルプログラム
256x256ピクセルのpng画像を生成します。ピクセル毎に着色し、赤成分を横方向に0から255まで、緑成分を縦方向に0から255まで変化させます。
リスト1(main.c)
#include <stdio.h> #include <gd.h> int main() { gdImagePtr im; FILE *pngout; int x, y; im = gdImageCreateTrueColor(256, 256); for (x = 0; x < 256; x++) { for (y = 0; y < 256; y++) { gdImageSetPixel(im, x, y, (x << 16) + (y << 8)); } } pngout = fopen("test.png", "wb"); gdImagePng(im, pngout); fclose(pngout); gdImageDestroy(im); return 0; }
GDグラフィックライブラリ関数の仕様はこちらを参照ください。
リスト2 コンパイル&実行
$ cc -o ex1 -lgd -O3 -Wall main.c $ ./ex1
図1 実行結果(test.png)
0 件のコメント:
コメントを投稿