java上传图片裁剪_浅谈java图片上传之剪切

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

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

public class ImageHelper{

///图片宽高比,默认1.333

double _webWidth=1.333;

/// 

///网站显示图片的 宽/高比

/// 

public double WebWidth

{

get { return _webWidth; }

set {_webWidth = value; }

}

/// 

/// 根据宽高比剪切图片,_webWidth

/// 

/// 需要剪切的图片

/// 

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 

{

//根据宽高比计算出高度,为宽度/宽高比

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;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值