在C#中如何用图片的一部分替换整合图片?

来源:百度知道 编辑:UC知道 时间:2024/05/31 20:10:31
我有如下一段代码:
System.Drawing.Image img = System.Drawing.Image.FromFile(@"d:\temp\无标题1.jpg");
System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(img);
g.DrawImage(img, new System.Drawing.Rectangle(0, 0, img.Width, img.Height), new System.Drawing.Rectangle(0, 0, img.Width, img.Height - 30), System.Drawing.GraphicsUnit.Pixel);
img.Save(@"d:\temp\1.jpg");
本来是想用原始图片的从顶端到离底部30个像素的部分替换整个图片,但执行后生成的图片还是原始的图片。
请问这是怎么回事?我该怎么弄?
在img.Save(@"d:\temp\1.jpg");前加一句g.Flush();也不行。

如下:
System.Drawing.Image img = System.Drawing.Image.FromFile(@"d:\temp\1.jpg");

Bitmap tmpImage = new Bitmap(img.Width,img.Height);
System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(tmpImage);

Rectangle srcRect = new Rectangle(0, 0, img.Width, img.Height- 30);
Rectangle destRect = new Rectangle(0, 0, img.Width, img.Height );

g.DrawImage(img,destRect, srcRect,GraphicsUnit.Pixel);
img.Dispose();
tmpImage.Save(@"d:\temp\1.jpg");
g.Dispose();

在 img.Save(@"d:\temp\1.jpg");之前添加一句
g.Flush();