rcairo
インストール
gemパッケージキター!
gems install cairo
(ということで昔のドキュメントはrcairo_oldに移動しました。)
使い方
処理の流れ
Surface を用意する。200x200は画像サイズ。
surface = Cairo::ImageSurface.new(Cairo::FORMAT_ARGB32, 200, 200)
Surface上に何か書くときは、Contextを作ってstrokeする、を繰り返す。
c = Cairo::Context.new(surface) #例えば、線を書く c.set_source_rgb(0,0,0) c.move_to(0,100) c.lone_to(200,100) #Surfaceに対して描画 c.stroke
描画済みのSurfaceを、たとえばpngファイルに落とす。
surface.write_to_png("test.png")
Contextは仮想画面と思えばいい。 線とか文字とかを書いたContextを、strokeで実際に描画する。strokeしたらpathは消えてしまう。
線を書く
c.move_to(x0,y0) # (x0,y0) にペンを移動 c.line_to(x1,y1) # (x1,y1)まで線を引く c.line_to(x2,y2) # さらに(x2,y2)まで線を引く
線のスタイルを変える
c.set_source_rgb(0.0, 0.0, 0.0) # 色。R,G,B の濃さをそれぞれ0.0から1.0で表す c.set_line_width(4) # 太さ。ピクセル指定? c.set_dash([5,5],2.5) # 点線の指定。5ピクセル書いて5ピクセル休む、 # のを2.5ピクセルのオフセットをつけて書く。 # 行列はOn,Offのパターンを指定するものなので、 #行列サイズを増やせば一点鎖線などが書ける
文字
utfにすれば日本語もさっくりOk。
c.move_to(100,100) str=Uconv.euctou8("テスト表示") c.show_text(str)
フォント指定
c.select_font_face("times", 0,0) c.select_font_face("mikachan", 0,0) c.select_font_face("kochi gothic", 0,0)
などなど。Win環境でMS明朝を出したければフォント名をutf8でencodeするのかな。
文字サイズ取得
c.text_extents("hoge").width
などのようにtext_extentsで現在のContextの設定(フォントサイズとか)で の"hoge"の実サイズが得られる。