Graphics.DrawImage 可以显示Bitmap 直接把Bitmap给PictureBox.image赋值却显示不了
时间: 2024-01-23 12:03:34 浏览: 26
是的,Graphics.DrawImage 可以用来绘制一张图片到另一张图片上,而PictureBox.image则是用来在窗体上显示图片的。虽然两者都可以操作图片,但是它们的用途和实现方式是不同的。
如果您想要在PictureBox中显示一张Bitmap图片,可以通过以下方式实现:
```
Bitmap bmp = new Bitmap("image.bmp"); // 从文件中读取Bitmap图片
pictureBox1.Image = bmp; // 将Bitmap图片赋值给PictureBox的Image属性
```
如果您已经有了一个Bitmap对象,并且想要在另一个Bitmap上绘制它,可以通过以下方式实现:
```
Bitmap bmp1 = new Bitmap("image1.bmp"); // 从文件中读取第一张Bitmap图片
Bitmap bmp2 = new Bitmap("image2.bmp"); // 从文件中读取第二张Bitmap图片
Graphics g = Graphics.FromImage(bmp2); // 获取第二张Bitmap的Graphics对象
g.DrawImage(bmp1, new Point(0, 0)); // 将第一张Bitmap绘制到第二张Bitmap上
```
希望以上回答能够帮到您,如有疑问请随时追问。
相关问题
c#graphics.drawimage
好的,我明白了。关于你的问题,Graphics.DrawImage 方法是 C# 中用于绘制图像的方法之一。它可以将一个图像绘制到另一个图像或控件上。该方法有多个重载,可以根据需要选择使用。
例如,以下代码将一个名为 image 的 Bitmap 对象绘制到名为 pictureBox 的 PictureBox 控件上:
```
Graphics g = pictureBox.CreateGraphics();
g.DrawImage(image, 0, 0);
```
两个嵌套的不一样大小pictureBox如何合并成为一张图片
如果两个嵌套的PictureBox大小不同,可以将它们缩放到相同大小,然后再将它们合并成一张图片。以下是示例代码:
```c#
// 获取两个PictureBox中较小的一个的宽度和高度
int width = Math.Min(pictureBox1.Width, pictureBox2.Width);
int height = Math.Min(pictureBox1.Height, pictureBox2.Height);
// 创建一个空白的Bitmap对象
Bitmap bmp = new Bitmap(pictureBox1.Width + pictureBox2.Width, Math.Max(pictureBox1.Height, pictureBox2.Height));
// 创建一个Graphics对象
Graphics g = Graphics.FromImage(bmp);
// 将第一个PictureBox中的图片缩放并绘制到Bitmap对象的左上角
g.DrawImage(pictureBox1.Image, 0, 0, width, height);
// 将第二个PictureBox中的图片缩放并绘制到Bitmap对象的右下角
g.DrawImage(pictureBox2.Image, pictureBox1.Width, pictureBox1.Height, width, height);
// 将Bitmap对象设置为第三个PictureBox的Image属性,从而显示合并后的图片
pictureBox3.Image = bmp;
```
在此示例代码中,我们获取了两个PictureBox中较小的一个的宽度和高度,并将其作为新的图片的大小。然后,我们使用Graphics对象的DrawImage方法将每个PictureBox的图片缩放到新的大小,并绘制到Bitmap对象的相应位置上。最后,我们将Bitmap对象设置为第三个PictureBox的Image属性,从而显示合并后的图片。