文字描画と改行

 2011-06-26
Bitmap#draw_text に渡す文字列内に改行が含まれると、
改行のところが・という文字になってしまいます。
そこで、改行に対応させようという試み。

Bitmap#draw_text を改行 \n に対応させる。
class Bitmap
alias _draw_text draw_text
def draw_text(*argv)
# 引数の整理
if argv[0].is_a?(Rect)
x, y, width, height = argv[0].x, argv[0].y, argv[0].width, argv[0].height
text = argv[1]
align = argv[2]
else
x, y, width, height, text, align = *argv
end
align ||= 0
# 描画処理
line = text.split("\n")
wlh = self.font.size + 4
y += [0, (height - wlh * line.size) / 2].max
for i in 0...line.size
_draw_text(x, y, width, wlh, line[i], align)
y += wlh
end
end
end


Bitmap#draw_text で改行 \n を削除する。
class Bitmap
alias _draw_text draw_text
def draw_text(*argv)
# 引数の整理
if argv[0].is_a?(Rect)
x, y, width, height = argv[0].x, argv[0].y, argv[0].width, argv[0].height
text = argv[1]
align = argv[2]
else
x, y, width, height, text, align = *argv
end
align ||= 0
# 描画処理
_draw_text(x, y, width, height, text.gsub("\n"), align)
end
end
コメント




 

 ※ コメント内にURLを含めるには、バッククォート(`)をURLの直前に付け加えてください。


管理人のみ閲覧許可 [?]

トラックバック
トラックバックURL:
http://cacaosoft.blog42.fc2.com/tb.php/549-f2c41309
≪ トップページへこのページの先頭へ  ≫
カレンダー
09 << 2017/10 >> 11
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -

カテゴリー
最近の記事
最近のコメント
タグクラウド

リンク