浅谈java图片上传之剪切

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

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

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;
}
}
时间: 2024-11-05 09:47:15

浅谈java图片上传之剪切的相关文章

java图片上传(mvc)

最近有开始学起了java,好久没写文章了,好久没来博客园了.最近看了看博客园上次写的图片上传有很多人看,今天在一些篇关于java图片上传的.后台接收用的是mvc.不墨迹了,直接上图. 先看目录结构.idea开发. 一.图片上传还是使用的这款jq插件.前端部署这款插件,不用说了吧.效果图       二.前台代码只需要盖一个位置.因为是比较好用的插件.插件样式自行修改. 三.后台代码. 后面看不见的. 这个图片上传主要是自己写了几个函数.让图片储存更加方便.分成了年月日储存.但是后期遍历比较困难,

js 利用iframe和location.hash跨域解决办法,java图片上传回调JS函数跨域

奶奶的:折腾了我二天,终于解决了!网上有很多例子. 但跟我的都不太一样,费话不多说了,上图   上代码: IE ,firefix,chrome 测试通过 js :这个主页面,部分代码, function submitUpload(id){ $("#imgSrc" + id +"").attr("alt", "图片上传中--"); var imgID = id; if(id>0){ imgID = 1; } var for

UEditor之基于Java图片上传前后端源码研究

开心一笑 一定要快乐学习,所以学习之前先看个笑话: 刚来北京,租了一个小房,一楼,上淘宝买衣服,选了付钱了联系卖家:"我已付款,请发货."谁知那货直接说:"我看到你地址了,自己上楼来拿吧!我就在你楼上." 拿你妹,老子付了邮费的...送下来. 提出问题 Ueditor前后端源码的学习和简单的研究??? 解决问题 前提: 假如你已经看了我的前一篇文章,这一点很重要的啊,当然不看也可以,因为你已经是一个高手,就像我一样,哈哈: 假如你已经安装tomcat服务器: 假如你

UEditor之基于Java图片上传前后端源码研究 (转)

http://blog.csdn.net/huangwenyi1010/article/details/51637439 这是我的项目目录 1.从访问路径http://localhost:8081/Test/_examples/simpleDemo.html,我们主要是要看看,富文本框被加载出来之前,会调用哪些代码, 不卖关子,很明显,会调用后端的controller.jsp代码,因为我们已经在ueditor.config配置了: // 服务器统一请求接口路径 , serverUrl: URL

Java图片上传

图片上传,其实,也可以按照之前文章--文件上传的方式实现,因为图片也是文件.只要是文件,都可以用流来接收,然后把流给写出到指定的物理空间下,形成我们需要的物理文件. 今天,我们就不用上传文件的方式,这种方式和我之前的一篇制作二维码的文章类似.首先,读文件,需要知道文件的路径,比如放在C盘下面的某个文件.然后把这个图片通过画笔方式给画出来.放到指定服务器路径下.不需要第三方插件,sun公司提供的image工具类就可以实现. 下面我们把桌面上的blue.png图片上传到服务器上. public st

js 利用iframe和location.hash跨域解决的方法,java图片上传回调JS函数跨域

奶奶的:折腾了我二天,最终攻克了!网上有非常多样例. 但跟我的都不太一样,费话不多说了,上图   上代码: IE ,firefix,chrome 測试通过 js :这个主页面,部分代码, function submitUpload(id){ $("#imgSrc" + id +"").attr("alt", "图片上传中--"); var imgID = id; if(id>0){ imgID = 1; } var fo

浅谈图片上传之剪切

对于一个网站来说,图片显示都是有一定的宽高比的,而客户上传的图片大多未经过剪切,故上传以后对图片进行一定的剪切是非常必要的. 如此,我们应当剪一个类来完成这项工作. public class ImageHelper{ ///图片宽高比,默认1.333 double _webWidth=1.333; /// <summary> ///网站显示图片的 宽/高比 /// </summary> public double WebWidth { get { return _webWidth;

Java图片上传压缩处理

所需要的jar包在:\jdk1.7.0_25\jre\lib\rt.jar里面 package util; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import javax.ima

java图片上传并预览,前台用jQuery插件AjaxFileUpload,后台用FileUtils.copyFile.

个人笔记,以备后用. 表体代码: <td colspan="3"> <s:file label="上传" name="uploadFile" id="uploadNumFile" onchange="fileUpload('uploadNumFile','goodsRecordDtl_goodsPicture','goodsPicture_img')" /> <a href=&