From: Hiroyuki S. <hir...@gm...> - 2014-10-27 03:04:55
|
皆様初めまして 佐藤と申します。 最近cairoを使い始めました。テキストレイアウトをするにはpangoを使うとうことを知りました。 そのため、pangoも使い始めました。 以下のことをついて教えていただきたく存じます。 よろしくお願いします。 目的 cairo, pangoを使って描画するテキストのレイアウトを指定する 出力先はpng テキストはボックス内に記述する 指定したいレイアウト ・横方向: 左寄せ、中央揃え、右寄せ ・縦方向: 上揃え、中央揃え、下揃え 質問事項 次のようなことがわからないのですが方法を教えていただけますでしょうか? ドキュメントやサンプルのある場所でも結構です。 (1) pangoで縦方向を中央揃えにする方法 縦方向は中央揃えなどがなく、Pango::AttrRise.new(10)?を使って 指定するのでしょうか?、サンプルなどありますでしょうか? (2) フォント描画時の縦横サイズ取得方法 これはpangoとは関係ないかもしれませんがもしご存知でしたら 教えていただけると助かります。 pangoでフォントサイズ16の文字「佐藤博之」を記述した場合 縦、横のサイズはXXXと取得してその値でCairoのキャンパス を作成することは可能でしょうか? 作成したプログラム ひとまず文字が出力されるところまではできました。 require 'cairo' require 'pp' require 'pango' format = Cairo::FORMAT_ARGB32 width = 1000 height = 768 surface = Cairo::ImageSurface.new(format, width, height) context = Cairo::Context.new(surface) layout = context.create_pango_layout layout.text = "ABCDEFGH" layout.set_font_description(Pango::FontDescription.new("Meiryo 90")) layout.width = width * Pango::SCALE layout.wrap = Pango::WRAP_CHAR context.show_pango_layout(layout) surface.write_to_png("pango.png") 環境 * Scientific Linux 6.5 * Ruby 2.0 * pango 2.2.0 * cairo 1.12.9 -- Hiroyuki Sato |