文字描画と改行

 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
≪ トップページへこのページの先頭へ  ≫
カレンダー
01 << 2017/03 >> 02
- - - 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 -

カテゴリー
最近の記事
02/28 お返事
02/14 お返事
01/21 お返事
01/12 更新情報
11/28 お返事

最近のコメント
03/16 お返事
01/21 お返事
11/30 z座標
11/20 z座標
08/03 お返事

タグクラウド

リンク