我正在尝试从 .NET 中的 PictureBox 复制图像并将其绘制在另一个图像之上。当我在初始图像上绘制图像时,如何在图片框中保留图像的 sizemode 属性?
提前致谢...
编辑:这是我用来将图片从图片框(pbImage)绘制到另一个图片框(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
它可以按我的需要工作。但是我仍然想知道是否有一种方法可以使用各种 SizeModes 来获取图像在 PictureBox 中显示的大小,因为它在未来可能会有用。
谢谢。