package out;
import java.awt.Image;
import java.awt.Rectangle;
import java.awt.geom.AffineTransform;
import java.awt.image.AffineTransformOp;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Iterator;
import javax.imageio.ImageIO;
import javax.imageio.ImageReadParam;
import javax.imageio.ImageReader;
import javax.imageio.stream.ImageInputStream;
public class ImageHelper {
/*
* 根据尺寸图片居中裁剪
*/
public static void cutCenterImage(String src,String dest,int w,int h) throws IOException{
Iterator iterator = ImageIO.getImageReadersByFormatName("jpg");
ImageReader reader = (ImageReader)iterator.next();
InputStream in=new FileInputStream(src);
ImageInputStream iis = ImageIO.createImageInputStream(in);
reader.setInput(iis, true);
ImageReadParam param = reader.getDefaultReadParam();
int imageIndex = 0;
Rectangle rect = new Rectangle((reader.getWidth(imageIndex)-w)/2, (reader.getHeight(imageIndex)-h)/2, w, h);
param.setSourceRegion(rect);
BufferedImage bi = reader.read(0,param);
ImageIO.write(bi, "jpg", new File(dest));
}
/*
* 图片裁剪二分之一
*/
public static void cutHalfImage(String src,String dest) throws IOException{
Iterator iterator = ImageIO.getImageReadersByFormatName("jpg");
ImageReader reader = (ImageReader)iterator.next();
InputStream in=new FileInputStream(src);
ImageInputStream iis = ImageIO.createImageInputStream(in);
reader.setInput(iis, true);
ImageReadParam param = reader.getDefaultReadParam();
int imageIndex = 0;
int width = reader.getWidth(imageIndex)/2;
int height = reader.getHeight(imageIndex)/2;
Rectangle rect = new Rectangle(width/2, height/2, width, height);
param.setSourceRegion(rect);
BufferedImage bi = reader.read(0,param);
ImageIO.write(bi, "jpg", new File(dest));
}
/*
* 图片裁剪通用接口
*/
public static void cutImage(String src,String dest,int x,int y,int w,int h) throws IOException{
Iterator iterator = ImageIO.getImageReadersByFormatName("jpg");
ImageReader reader = (ImageReader)iterator.next();
InputStream in=new FileInputStream(src);
ImageInputStream iis = ImageIO.createImageInputStream(in);
reader.setInput(iis, true);
ImageReadParam param = reader.getDefaultReadParam();
Rectangle rect = new Rectangle(x, y, w,h);
param.setSourceRegion(rect);
BufferedImage bi = reader.read(0,param);
ImageIO.write(bi, "jpg", new File(dest));
}
/*
* 图片缩放
*/
public static void zoomImage(String src,String dest,int w,int h) throws Exception {
double wr=0,hr=0;
File srcFile = new File(src);
File destFile = new File(dest);
BufferedImage bufImg = ImageIO.read(srcFile);
Image Itemp = bufImg.getScaledInstance(w, h, bufImg.SCALE_SMOOTH);
wr=w*1.0/bufImg.getWidth();
hr=h*1.0 / bufImg.getHeight();
AffineTransformOp ato = new AffineTransformOp(AffineTransform.getScaleInstance(wr, hr), null);
Itemp = ato.filter(bufImg, null);
try {
ImageIO.write((BufferedImage) Itemp,dest.substring(dest.lastIndexOf(".")+1), destFile);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
分享到:
相关推荐
java 水印 图像处理 图片分割 裁剪 缩放 功能 且带整个程序的整合, 和单元测试对单独功能的处理 操作,并可以通过打印 发送传真,全部
实现了类似开心网等网站头像上传是的头像裁剪!这是一个在MyEclipse8.5下测试成功的一个jsp项目!导入工程就可以运行!
java裁剪、缩放图片工具类。含工具类和一个测试类。
java 处理图片大小等比例缩放;图片裁剪;支持图片压缩不失真;支持图片添加水印;支持动态图的处理;支持自定义图片大小的转换 等 压缩包中内附使用说明
两种方式进行图片的裁剪、缩放以及图形验证码,从项目抽取,所以验证是没问题的
java 图片上传,可预览可剪切可缩放,没有积分下载就私信我
java 上传图片 头像 预览 切割 绝对好用。完整源码,下载搭上就可以用
在js中压缩,在页面上选定区域并上传,在java中根据参数处理图像,页面处理图片缩放裁剪上传的功能。
绍Java图像的裁剪,缩放
java实现的图片处理,主要功能图片缩放,按比例缩放,截剪
网上流传的Java处理图片的代码,虽然可对图片进行简单处理,但效果并不理想。 为了解决这个问题,我也是在网上找了好久,看了很多资料,功夫不负有心人...支持的处理操作:图片缩放,区域裁剪,水印,旋转,保持比例。
自由裁剪大小保留高清图片效果,源码文件,无需改动,直接导入即可使用,无兼容性问题;本上传程序可对上传的图片进行分类,像一个简单的小相册一样,可拿去学习,也可以将核心代码剥离出来,用到其它项目中也是不错...
jquery crop+java 裁剪上传图片,对图片缩放、移动、旋转、裁剪 上传到服务器。
主要介绍了Java实现的微信图片处理工具类,可实现针对图片的裁剪、合并、等比例缩放、旋转、识别等各种常见的图片处理功能,需要的朋友可以参考下
java图像各种基本操作,包括fft,分割,缩放,huffman编码,镜像等等
本文介绍了头像裁剪上传功能,用到的技术有 ...4.点击确定按钮将裁剪用到的参数传入后台,后台图片进行剪切,之后缩放成我们需要的格式 5.最后将图片路径传到前台进行展示 前台页面代码为: <script src="j
java图片处理工具类,里面提供常用的图片处理类,包括缩放图像、切割图像、图像类型转换、彩色转黑白、文字水印、图片水印等。
spring-mvc整合cropper图片裁剪插件.代码已经测试完毕,可以直接运行. 具体功能:上传多种不同类型的图片,图片可以任意缩放,裁剪框也可以任意缩放,可以旋转图片等等。。。 具体实现过程,请访问我的博客. ...
用户也可从本地选择一张图片,然后可对选择的图片或拍照的图片进行拖动、缩放后截取,最后上传到web服务器。后台使用java实现图片的接收和存储