在运行时ASP.NET裁剪图像

时间:2013-12-14 12:10:02

标签: c# asp.net webforms

我正在我的网页上显示图片。由于图像尺寸各异,我想裁剪它们(可能来自中心)。我想在运行时裁剪它们。

我正在使用datalist和img标签来显示某些文件夹中的图像。有没有办法做到这一点?

编辑:

如果这是原始图像

enter image description here

我想裁剪一定数量的像素,就像在这种情况下:220x160

enter image description here

2 个答案:

答案 0 :(得分:1)

public Bitmap CropCenter(Bitmap src, int targetWidth, int targetHeight) 
{
    int x = src.Width / 2 - targetWidth / 2;
        int y = src.Height / 2 - targetHeight / 2;

        Rectangle area = new Rectangle(x, y, targetWidth, targetHeight);

        return src.Clone(area, src.PixelFormat);
}

传递源位图并输入所需的宽度,高度以从img的中心裁剪出来也会对targetWidth进行一些检查,targetHeight应该确保它们小于img本身。

编辑: 正如SynerCoder所提到的,您还需要将参考System.Windows.Drawing添加到您的项目中。

答案 1 :(得分:0)

使用ImageResizer,这似乎是一种比(重新)自己编写代码更好的方法。

Nuget包:http://www.nuget.org/packages/ImageResizer/

裁剪等简单功能是免费的(但其他一些功能并非免费)。