.NETのPictureBoxから画像をコピーして、別の画像の上に描画しようとしています。最初の画像の上に画像をペイントするときに、画像ボックスのsizemodeプロパティを保持するにはどうすればよいですか?
前もって感謝します...
編集:これは、PictureBox(pbImage)の画像を別のPictureBox(pbContainer)の画像にペイントするために使用していたコードです。SizeModeをpbImageでズームするように設定しています。私が抱えていた問題は、pbImageと同じ外観を使用して画像をペイントしようとしたことであり、画像ボックスに表示されている画像のサイズを、方法ではなくSizeMode=Zoomで確認する方法があるかどうか疑問に思っていました。元の画像のサイズが変更されます。
Private Function FlattenImage() As Bitmap
Dim bmp As New Bitmap(pbContainer.Image, pbContainer.Size)
Using insertImage As New Bitmap(pbImage.Image, pbImage.Width, pbImage.Height), g As Graphics = Graphics.FromImage(bmp)
Dim insertLocation As New Point(pbImage.Left - pbContainer.Left, pbImage.Top - pbContainer.Top)
g.DrawImage(insertImage, insertLocation)
Return bmp
End Using
End Function
私は次のようにDrawToBitmap()を使用することになりました:
Private Function FlattenImage() As Bitmap
Dim bmp As New Bitmap(pbContainer.Image, pbContainer.Size)
Using insertImage As New Bitmap(pbImage.Width, pbImage.Height), g As Graphics = Graphics.FromImage(bmp)
Dim insertLocation As New Point(pbImage.Left - pbContainer.Left, pbImage.Top - pbContainer.Top)
Dim rect As New Rectangle(New Point(0, 0), pbImage.Size)
pbImage.DrawToBitmap(insertImage, rect)
g.DrawImage(insertImage, insertLocation)
Return bmp
End Using
End Function
必要に応じて動作します。ただし、将来的に役立つ可能性があるため、さまざまなSizeModeを使用してPictureBoxに表示される画像のサイズを取得する方法があるかどうかを調べることに興味があります。
ありがとう。