2015年3月12日木曜日

Raspberry Pi + OpenVG でマルチバイト文字 準備編


OpenVGは本来日本語などのマルチバイト文字に対応していません。
そこで既存のラッパーライブラリを使ってマルチバイト文字を描画してみました。
ラッパーライブラリ作成者の許可を得るまでは公開はしません(たぶんずっとしない)ので
以下に従って頑張ってください。

この記事は準備編です。
本編で実際にマルチバイト文字対応化していきます。

■元となるラッパーライブラリ

有志の方がRaspberry Pi用OpenVGラッパーライブラリを書いてくれているので、これを利用させて頂くことにします。

https://github.com/ajstarks/openvg

詳しい使い方は以下のページを参考にしました。

Raspberry Pi でUSBカメラ & 2D描画 OpenVG を使ってみる
http://abc002.blogspot.jp/2013/01/raspberry-pi-usb-openvg.html

以下、このラッパーライブラリを保存したディレクトリを(openvg)とします。
ディレクトリ(openvg)/にはlibshapes.cが存在します。

■日本語フォントを入れる

今回は「モトヤLマルベリ等幅」を利用しました。
Androidで採用されているフォントで、可愛さと可視性が両立された良フォントだと感じています。

使用するフォントをディレクトリ(openvg)/にコピーします。
今回はフォントのファイル名をMTLmr3m.ttfとします。
あ、多分TrueTypeフォントじゃないとダメです。

■hellovg.cを元に確認用のコードを作成

引数に指定した文字を画面に描画するように変更しました。
https://gist.github.com/wararyo/b2ebc87cb321623c3c1d
ディレクトリ(openvg)/に保存すると便利です。
フォント名については適宜変更してください。

■Makefile

Makefileの最後に以下の記述を追加します。

MTLmr3m.inc: font2openvg MTLmr3m.ttf
 ./font2openvg MTLmr3m.ttf MTLmr3m.inc MTLmr
hellovg: hellovg.c MTLmr3m.inc
 gcc -o hellovg hellovg.c libshapes.o oglinit.o -I/opt/vc/include/ -I/opt/vc/include/interface/vcos/pthreads -lbcm_host -L/opt/vc/lib/ -lGLESv2 -ljpeg -lEGL

フォント名については適宜変更してください。

■とりあえずコンパイル

あとはコンパイルしたらコピーしたフォントでHelloWorldが見られるはずです。

sudo apt-get install libfreetype6-dev
sudo make
./hellovg "Hello OpenVG"

※私はlibfreetype6-devをうまくインストールできなかったので自前でコンパイルしました

これで準備が整いました。

こちらの記事で続きを行っていきます。

0 件のコメント:

コメントを投稿

Amazon