午後わてんのブログ

ベランダ菜園とWindows用アプリ作成(WPFとC#)

文字の縁取り Pixtack紫陽花 1.3.2.53

文字の影を使って文字の縁取りできるようにした
文字の描画でアンチエイリアスを使わない時に汚くなっていたのを修正

f:id:gogowaten:20191014142748p:plain

色のボタンで縁取りの色の選択で
数値は縁取りの太さの指定0(ふちなし)~10まで

f:id:gogowaten:20191014142806p:plain

f:id:gogowaten:20191014142827p:plain

今回の縁取りを作っているとき
文字の影とも組み合わせる事ができても大したことないだろうと
思っていたけど意外に色々できるなあ
 
 
イメージ 4
WindowsXPの時は問題なかったんだけど
Windows8.1にしたらアンチエイリアスなしの時の描画が汚くなった
文字の描画の設定でtxtrenderinghintを今までは特に指定していなかった
これをsinglebitperpixelっていうのを指定したらそれっぽくなったので
指定するようにした

f:id:gogowaten:20191014142855p:plain

このへんが関係していそう
WindowsXPにはcleartypeのようなものはなかったので
gdi++ - Helium (090211)という素晴らしいソフトウェアを使っていた
 
 
 
以前の縁取りでは画像として表示したあとから縁取りをしていて
文字として色が付いている所と背景の透明なところを1ピクセルづつ判定して
縁取りの色をつけていたので背景が透明の場合しか使えなかった
今回は文字の影の応用で単純に文字の描画の位置を1ピクセルづつずらして
重ねて描画しているだけ
太さが1のときは文字の描画を左上、左、左下、上、中心、下、右上、右、右下に
重ねて描画して、最後にまた中心に文字を描画して完成、合計10回の描画
3x3+1
太さが2だと5x5+1で26回、太さが3だと7x7+1で50回、
10だと21x21+1かな?
方法は単純なぶん力技だし鋭角な輪郭や曲線はうまくできていないけど
見た目にはそこそこのものができた

ダウンロード
ファイル名 Pixtack_20140319.zip