午後わてんのブログ

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

Pixtack紫陽花2.6.46.129_図形のサイズに画像サイズを合わせたい

前回
 
 
図形2
描画された線の画像の大きさに画像サイズを合わせるようにしてみた
けどうまくいかない
 

f:id:gogowaten:20191016162534p:plain

水色の線が図形で赤の枠が画像サイズ(592x655)
この枠を縮めて余白を無くしたい

f:id:gogowaten:20191016162555p:plain

理想、期待する結果

f:id:gogowaten:20191016162609p:plain

現実
昨日作ったマウスで直線の描画
これで出来上がる画像サイズはウィンドウの大きさになるので
それより小さい図形を書いた時は余白ができる
手動でサイズを変えて余白をなくすことはできるけどめんどくさい
図形の大きさに画像サイズをぴったりにするボタンが今回作った
「ピッタリ」のボタン
イメージ 4
図形の編集中に押すと表示がおかしくなる
 
今回図形の描かれている範囲を判定するのに使ったのが
GraphicsPathクラスにあるGetBoundsっていうメソッド
頂点を渡すと描画に必要な縦横の大きさと座標を返してくれる
Dim gp As New GraphicsPath
gp.AddLines(頂点情報)
Dim rectF As RectangleF = gp.GetBounds
(!?コードをコピペしたら色付きで表示された)
これで画像サイズを変更して、頂点座標をずらして描画したんだけど
どうやら返してくれる縦横の大きさは頂点のギリギリのところみたいで
鋭角な線の繋ぎ目にできる尖ったところは考慮されていないみたいで切れてしまう
さらに線の太さも関係しないので線が太いとそれも切れてしまう
こういうのを考慮して返してくれるメソッドって無いのかなあ
なければ線の太さ分サイズを大きくするとか繋ぎ目が鋭角ならそれも足すとかは難しそう
画像の外側から1ピクセルごとに色が付いているか判定するとか?
 
ダウンロード
 
 
次回