午後わてんのブログ

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

文字の角度と今までと違う縁取りができるようになったPixtack紫陽花

文字の描画で角度をつけることができるようにした
GraphicsPathを使った文字の縁取りができるようになった
イメージ 1
 
イメージ 2
角度にチェックを入れると有効になる
文字の描画をすると角度に応じた画像が追加されて
適用ボタンは選択画像が文字の描画で追加したものなら角度が適用される
角度の指定は-90から90まで
それ以外の角度にしたいときは「回転反転」の左90や右90を使えばいい
 

f:id:gogowaten:20191014113729p:plain

実際の画像の大きさは右の赤の四角になる
この四角は透明なんだけど
 
 
不具合というか仕様

f:id:gogowaten:20191014113749p:plain

文字の背景色はどちらも半透明にしてある
この状態だと2つの画像は重なっていることになって
編集中は問題なく見えるけどこれを保存してみると
 
 
イメージ 5
こうなる
黒背景の方に赤背景の透明なはずの四角が映っている
 
 

f:id:gogowaten:20191014113807p:plain

さっきと違うのは画像の順番で黒背景の画像が上になっている
これを保存してみると
 
 
イメージ 6
今度は赤背景の方に映っている
 
 
イメージ 8
 もちろん背景色を半透明にしなければ問題ない
 
 
文字の縁取り

f:id:gogowaten:20191014113844p:plain

文字列を縁取りをして描画する: .NET Tips: C#, VB.NET
http://dobon.net/vb/dotnet/graphics/drawoutlinestring.html
ここで紹介されているようにVisualBasicにもともとあったのを知らなくて
今までは自力でやっていた…
今回のはGraphicsPathのAddStringっていうのを使って縁取り
利点はアンチエイリアスを縁取り自体にも適用できるのと
縁取りの太さを指定できる、スピードが圧倒的に速いこと
デメリットは今までと違う描画方法なのでうまく使えていないことで改善したい
 
使うときは縁取りにチェックを入れて右にあるボタンを押すと
画像が追加される、太さの指定は1から10
色も指定できる
できないのは角度と適用でどちらも無視される
 

f:id:gogowaten:20191014113905p:plain

 
↑が今回の縁取り↓が今までの縁取り、右がアンチエイリアス
 

f:id:gogowaten:20191014113932p:plain

f:id:gogowaten:20191014113948p:plain

背景色が透明なら重なっても問題ないんだなあ
 
参照したところ
文字列を縁取りをして描画する: .NET Tips: C#, VB.NET
http://dobon.net/vb/dotnet/graphics/drawoutlinestring.html
文字列を回転させて描画する: .NET Tips: C#, VB.NET
http://dobon.net/vb/dotnet/graphics/drawrotatedstring.html

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

 
半透明グラデーションで気になったのが
透明度のアルファ値しか変更していないのに色成分が変化してしまうこと
左がアルファ値で右が赤成分のrの数値
期待する赤成分の数値は元の255なんだけどほとんど変化してしまっている

f:id:gogowaten:20191014114013p:plain

試しに予め色を作って塗りつぶして確かめてみたのが↓
 

f:id:gogowaten:20191014114028p:plain

ARGB=1,255,0,0のときは255残っている
 

f:id:gogowaten:20191014114043p:plain

ARGB=13,255,0,0になると254に変化してしまっている

f:id:gogowaten:20191014114058p:plain

こういうもんなのかなあ
 
アプリダウンロード
Pixtack_20140203.zip - OneDrive

onedrive.live.com