浅谈图片上传之剪切


对于一个网站来说,图片显示都是有一定的宽高比的,而客户上传的图片大多未经过剪切,故上传以后对图片进行一定的剪切是非常必要的。

如此,我们应当剪一个类来完成这项工作。


 public class ImageHelper{

///图片宽高比,默认1.333
 double _webWidth=1.333;

/// <summary>
///网站显示图片的 宽/高比
/// </summary>
public double WebWidth
{
get { return _webWidth; }
set {_webWidth = value; }
}
/// <summary>
/// 根据宽高比剪切图片,_webWidth
/// </summary>
/// <param name="img">需要剪切的图片</param>
/// <returns></returns>
public Bitmap CutImage(Bitmap img)
{

int width = img.Width;
int height = img.Height;
Rectangle section = new Rectangle();

//假如宽带高于高度图片
if (width >= height)
{
//根据网站宽高比例计算出宽度
section.Width = (int)(height * _webWidth);
//剪切宽大于原宽,取原宽
if (section.Width > width)
section.Width = width;
section.Height = height;
section.Y = 0;

//计算出开始截图的X定位,计算方式为(原宽-剪切宽/2)
section.X = (int)((width - section.Width) / 2);
}

///假如高度大于宽度的图片
if (width < height)
{
//根据宽高比计算出高度,为宽度/宽高比
section.Height = (int)(width / _webWidth);
//剪切宽大于原高,取原高
if (section.Height > height)
section.Height = height;

section.Width = width;
section.X = 0;

//计算出开始截图的Y定位,计算方式为(原高-剪切高/2)
section.Y = (int)((height - section.Height) / 2);
}

Bitmap pickedImage = new Bitmap(section.Width, section.Height);
Graphics pickedG = Graphics.FromImage(pickedImage);
//开始剪切并填充
pickedG.DrawImage(img, new Rectangle(0, 0, section.Width, section.Height), section,
GraphicsUnit.Pixel); 
return pickedImage;

}

}

 

优质内容筛选与推荐>>
1、tp3.1 白板不报错
2、11--数值的整数次方
3、maven 学习---Maven外部依赖
4、java向oracle存取clob和blob-
5、十二多线程


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号





    联系我们

    欢迎来到TinyMind。

    关于TinyMind的内容或商务合作、网站建议,举报不良信息等均可联系我们。

    TinyMind客服邮箱:support@tinymind.net.cn