在我的asp.net C#应用程序中,我试图裁剪下面的图像:
我只选择了脸部,但是裁剪的图像总是从左上角选择,如下所示:
我使用以下代码裁剪图片:
Rectangle sourceRect = new Rectangle(iX1, iY1, w, h);
System.Drawing.Image imgNew = CropImage(imgOrig, sourceRect);
private static System.Drawing.Image CropImage(System.Drawing.Image img, Rectangle cropArea)
{
Bitmap bmpImage = new Bitmap(img);
Bitmap bmpCrop = bmpImage.Clone(cropArea, bmpImage.PixelFormat);
img.Dispose();
return (System.Drawing.Image)bmpCrop;
}
答案 0 :(得分:2)
使用此代码裁剪图像。
static Bitmap CropImage(Image originalImage, Rectangle sourceRectangle, Rectangle destinationRectangle)
{
var croppedImage = new Bitmap(destinationRectangle.Width, destinationRectangle.Height);
using (var graphics = Graphics.FromImage(croppedImage))
{
graphics.DrawImage(originalImage, destinationRectangle, sourceRectangle, GraphicsUnit.Pixel);
}
return croppedImage;
}
问题是您的原始算法没有指定从哪里开始裁剪。因此,它总是从原点开始,这不是你想要的。