裁剪图像C#无背景

时间:2016-04-21 16:36:40

标签: c# image

我正在尝试使用C#裁剪图像,但我遇到了一些问题。

我需要裁剪此图片并从顶部删除15个像素:enter image description here

我使用过这段代码:

Bitmap myBitmap = new Bitmap(outputFileName);
Rectangle destRectangle = new Rectangle(new Point(0, 15), new Size(myBitmap.Width, myBitmap.Height));
Bitmap bmp = new Bitmap(myBitmap.Width, myBitmap.Height);
Graphics g = Graphics.FromImage(bmp);
g.DrawImage(myBitmap, 0, 0, destRectangle, GraphicsUnit.Pixel);
bmp.Save(outputFileNameCut, ImageFormat.Jpeg);

outputFileName是第一个图像的路径,outputFileNameCut是新图像的路径。它工作正常但是当我保存图像时,保存的图像是这样的:

enter image description here

似乎质量也越来越差。这两个图像都是.jpg

谢谢

1 个答案:

答案 0 :(得分:2)

请改用此代码:

Bitmap myBitmap = new Bitmap(outputFileName);
Rectangle destRectangle = new Rectangle(new Point(0, 15), 
new Size(myBitmap.Width, myBitmap.Height));
Bitmap bmp = new Bitmap(myBitmap.Width, myBitmap.Height - 15);
Graphics g = Graphics.FromImage(bmp);
g.DrawImage(myBitmap, 0, 0, destRectangle, GraphicsUnit.Pixel);
bmp.Save(outputFileNameCut, ImageFormat.Jpeg);

在旁注中,这可能会使条形码无效。因为您正在修改和调整图像大小,这可能会在某种程度上干扰某些扫描仪。