昨年2007/01/09で紹介していた gd-pango をインストールして動かしてみました。利用した OS は Debian lenny です。
$ cd libgd/src
$ ./bootstrap.sh
Now run configure and make
$ ./configure --prefix=/home/tabe/usr
checking build system type... i686-pc-linux-gnu
(snip)
checking if more special flags are required for pthreads... no
** Configuration summary for gd 2.1.0:
Support for PNG library: yes
Support for JPEG library: no
Support for Freetype 2.x library: yes
Support for Fontconfig library: yes
Support for Xpm library: no
Support for pthreads: yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating config/Makefile
config.status: creating config/gdlib-config
config.status: creating test/Makefile
config.status: creating config.h
config.status: executing depfiles commands
$ make
(snip)
$ cat build.sh
cc -o examples/simple gd_pango.c examples/simple.c -g -O2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include/pango-1.0 -I/home/tabe/var/gd-20080424/libgd/src -L/home/tabe/var/gd-20080424/libgd/src/.libs -I. -lpango-1.0 -lpangoft2-1.0 -lgd
cc -o examples/rotated gd_pango.c examples/rotated.c -g -O2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include/pango-1.0 -I/home/tabe/var/gd-20080424/libgd/src -L/home/tabe/var/gd-20080424/libgd/src/.libs -I. -lpango-1.0 -lpangoft2-1.0 -lgd
$ ./build.sh
examples/simple.c: In function ‘main’:
examples/simple.c:104: warning: ‘return’ with a value, in function returning void
examples/simple.c:47: warning: return type of ‘main’ is not ‘int’
$
$ cd examples
$ LD_LIBRARY_PATH=/home/tabe/var/gd-20080424/libgd/src/.libs ./simle
$ LD_LIBRARY_PATH=/home/tabe/var/gd-20080424/libgd/src/.libs ./rotated
そして独自に日本語を出力してみました。examples に UTF-8 でエンコーディングされた japanese.txt を用意し、simple.c および rotated.c からそれぞれ呼び出します: japanese.txt.patch
実際に simple や rotated を実行する前に、日本語の TrueType フォントを用意しておく必要があります。lenny の場合は
があれば十分です。Unicode の言語全てをカバーすることを目標にしている期待の DejaVu フォントは、今現在 CJK に対応していません: http://dejavu.sourceforge.net/wiki/index.php/Current_status
結果、d.png で rotated による回転に失敗しているようですが、それ以外ではテキストのレンダリングに成功しています: