Cairoで遊ぶ(1)
Cairoで遊ぶメモ、SVGファイル表示動きました.
SVGライブラリインストール
UbuntuでSynapticパッケージマネージャはlibsvg,libsvg-cairoに対応していないようなので、
cvs -d :pserver:anoncvs@cvs.cairographics.org:/cvs/cairo co libsvg cd libsvg ./autogen.sh make sudo make install cd .. cvs -d :pserver:anoncvs@cvs.cairographics.org:/cvs/cairo co libsvg-cairo cd libsvg-cairo ./autogen.sh make sudo make install
サンプルを参考にSVGを表示する
サンプルをダウンロードする
cvs -d :pserver:anoncvs@cvs.cairographics.org:/cvs/cairo co cairo-demo
このデモのgtkディレクトリのプログラムを次のようにしてSVGファイルを読み込んでレンダリング
static void paint (GtkWidget *widget, GdkEventExpose *eev, gpointer data) { gint width, height; gint i; cairo_t *cr; svg_cairo_t *svgc; unsigned int w, h; width = widget->allocation.width; height = widget->allocation.height; cr = gdk_cairo_create (widget->window); svg_cairo_create (&svgc); svg_cairo_parse (svgc, "icon001.svg"); svg_cairo_get_size (svgc, &w, &h); // cairo_scale (cr, 1.0/w, 1.0/h); svg_cairo_render (svgc, cr); svg_cairo_destroy (svgc); cairo_destroy (cr); }
ついでにMakefileも書き換える
APPS = \ svg CFLAGS = -g -Wall -I/usr/local/include LDFLAGS = -L/usr/local/lib -lsvg -lsvg-cairo CFLAGS += `pkg-config gtk+-2.0 --cflags` LDFLAGS += `pkg-config gtk+-2.0 --libs` all: $(APPS) clean: $(RM): $(APPS)