午後わてんのブログ

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

複数の画像を並べて重ねて1枚にするPixtack紫陽花 画像の切り抜き

四角形で選択範囲を指定してコピペできるようにした
イメージ 1
昨日の続きみたいなもので、画像の切り抜きみたいなもの
場所はテスト機能→その他に作ってみた
 

f:id:gogowaten:20191014121858p:plain

選択範囲のボタンを押すと半透明の四角形が作成されてこれが切り抜く範囲になる
大きさや位置を合わせて範囲コピペのボタンを押すと
切り抜き画像が作成される
 

f:id:gogowaten:20191014121911p:plain

 複数の画像でもできる
選択範囲に使っている半透明の画像の下側にあるものはすべて
切り抜きの対象になる
 

f:id:gogowaten:20191014121929p:plain

逆に選択範囲の画像の上にある画像は対象外になる
切り抜き画像の大きさは選択範囲の画像と同じ大きさになる
 
 

f:id:gogowaten:20191014121943p:plain

 選択範囲の画像の色は変えられる
 
不具合というか仕様として
選択範囲の画像以外を選択した状態で範囲コピペを押すと
何も描画されていない透明な画像が作成される
 
地味なところではNumericupdownの数値を変更した時に
選択範囲の画像の大きさも連動して変更されるようにしたこと
イメージ 6
以前は起動できなくなることがあったけどやり方を変えてみたらうまく行っているみたい?
 
    Private Sub NumericUpDownRectRangeV_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NumericUpDownRectRangeV.ValueChanged
        For Each c As Form In Application.OpenForms
            If c.Name = "Form3" Then
                Call Form1.RectRangeSelectRealTime()
            End If
        Next
    End Sub
Form1が大きなウィンドウで、Form3がテスト機能のウィンドウ
テスト機能のウィンドウが開いている状態なら範囲選択画像を作成する
ってやり方にしてみた
 
以前のやり方では↓のエラーが出て起動できなかった
”フォームの作成中にエラーが発生しました。詳細については、Exception.InnerException を参照してください。エラー: 既定のインスタンスからの作成中に、フォームがそれ自体を参照し、無限再帰の原因になりました。フォームのコンストラクター内では、'Me' を使用してそのフォームを参照してください。”
 
ダウンロード
ファイル名 Pixtack_20140216.zip