关于c# bitmap图像截取问题

想要截取一个bitmap的一部分没比如一个长150宽200的图取图片中间部分,截取成150*150的图,我的代码如下:intbw=bmp.Width;//原图宽intbh... 想要截取一个bitmap的一部分没比如一个长150宽200 的图 取图片中间部分,截取成150*150的图 ,我的代码如下:
int bw = bmp.Width;//原图宽
int bh = bmp.Height;//原图高
Bitmap bmp2 = new Bitmap(bmp);
Graphics g = Graphics.FromImage(bmp2);
bmp2 = new Bitmap(bmp, bh, bh);
int startx = (bw - bh) / 2;
g.Clear(System.Drawing.Color.White);
g.DrawImage(bmp, new System.Drawing.Rectangle(0, 0, bh, bh), new System.Drawing.Rectangle(startx, 0, bh, bh), GraphicsUnit.Pixel);
bmp2.Save(path);
g.Dispose();
bmp2.Dispose();
bmp.Dispose();
但得到的图只是把原图压扁了一些,并不是我想要的截取中间部分,搞了半天了,求大神指点!
展开
 我来答
chenhp2
2015-05-15 · TA获得超过140个赞
知道小有建树答主
回答量:424
采纳率:0%
帮助的人:169万
展开全部
string path = @"C:\Users\huaping\Desktop\test.jpg";

Bitmap img = (Bitmap)Image.FromFile(path);

Bitmap newImg = new Bitmap(150,150);
Graphics g = Graphics.FromImage(newImg);

// 结果 x起点 y起点 要绘制的原图的部分的矩形 所用单位
g.DrawImage(img, 0, 0, new Rectangle(150, 150, newImg.Width, newImg.Height), GraphicsUnit.Pixel);

string savePath = @"C:\Users\huaping\Desktop\new.jpg";
newImg.Save(savePath);
g.Dispose();
newImg.Dispose();
img.Dispose();
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式