C#中的图像裁剪问题

时间:2014-07-10 06:26:26

标签: c# asp.net image image-processing

在我的asp.net C#应用程序中,我试图裁剪下面的图像:

enter image description here

我只选择了脸部,但是裁剪的图像总是从左上角选择,如下所示:

enter image description here

我使用以下代码裁剪图片:

  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;
    }

1 个答案:

答案 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;
}

问题是您的原始算法没有指定从哪里开始裁剪。因此,它总是从原点开始,这不是你想要的。