开发者社区> javaboy2012> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

java图片裁切工具类

简介:
+关注继续查看
package com.yanek.util;

import java.awt.Rectangle;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Iterator;

import javax.imageio.ImageIO;
import javax.imageio.ImageReadParam;
import javax.imageio.ImageReader;
import javax.imageio.stream.ImageInputStream;

public class ImgCutUtil {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		ImgCutUtil.cut(30, 50, 300, 400, "d:/1.jpg", "d:/100.jpg");

	}

	/**
	 * 图片裁切
	 * @param x1 选择区域左上角的x坐标
	 * @param y1 选择区域左上角的y坐标
	 * @param width 选择区域的宽度
	 * @param height 选择区域的高度
	 * @param sourcePath 源图片路径
	 * @param descpath 裁切后图片的保存路径
	 */
	public static void cut(int x1, int y1, int width, int height,
			String sourcePath, String descpath) {

		FileInputStream is = null;
		ImageInputStream iis = null;
		try {
			is = new FileInputStream(sourcePath);
			String fileSuffix = sourcePath.substring(sourcePath
					.lastIndexOf(".") + 1);
			Iterator<ImageReader> it = ImageIO
					.getImageReadersByFormatName(fileSuffix);
			ImageReader reader = it.next();
			iis = ImageIO.createImageInputStream(is);
			reader.setInput(iis, true);
			ImageReadParam param = reader.getDefaultReadParam();
			Rectangle rect = new Rectangle(x1, y1, width, height);
			param.setSourceRegion(rect);
			BufferedImage bi = reader.read(0, param);
			ImageIO.write(bi, fileSuffix, new File(descpath));
		} catch (Exception ex) {
			ex.printStackTrace();
		} finally {
			if (is != null) {
				try {
					is.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
				is = null;
			}
			if (iis != null) {
				try {
					iis.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
				iis = null;
			}
		}

	}

}

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Java 图片压缩
先上传压缩后的效果图一张: 图片1是压缩前,2是压缩后,这是以最大压缩比压缩的,效果只有自己去看了。 package zhangao.main; import java.
1138 0
UCenter在JAVA项目中实现的单点登录应用实例
Comsenz(康盛)的UCenter当前在国内的单点登录领域占据绝对份额,其完整的产品线令UCenter成为了账号集成方面事实上的标准。 基于UCenter,可以将Comsenz旗下的Discuz!(社区论坛系统)、SupeSite(门户CMS系统)、X-Space(博客系统)从用户资源层面进行无缝整合,使得账号实现统一管理,在任何一个系统中进行注册、登录、注销等操作时,该账号在其他系统中的会话状态也将同步更新,最终实现一号通的单点登录模式。
1295 0
java 实现缓存
引用:http://www.cnblogs.com/agilework/articles/2293352.html package lhm.hcy.guge.frameset.cache; import java.
623 0
JAVA中实现消息提示功能代码 .
      注(在MyEclipse中新建一个jsp文件然后把代码复制到当中即可!)                     MSN 弹出消息框 function MessShow(id,width...
713 0
JAVA实现自动打开URL对应的网页并保存为图片-不借助第三方API
基本原理: JDK6u10版本以上提供了DeskTop的API接口支持,可以根据URI参数自动打开 操作系统默认的浏览器来加载对应的网页,同时借助JDK的Robot类实现自动截屏 这样就完成了对任意一个URL对应网页保存为图片。
1180 0
2013编程之美资格赛之树上的三角形(Java实现)
树上的三角形 时间限制: 2000ms 内存限制: 256MB 描述 有一棵树,树上有只毛毛虫。它在这棵树上生活了很久,对它的构造了如指掌。所以它在树上从来都是走最短路,不会绕路。它还还特别喜欢三角形,所以当它在树上爬来爬去的时候总会在想,如果把刚才爬过的那几根树枝/树干锯下来,能不能从中选三根出来拼成一个三角形呢? 输入 输入数据的第一行包含一个整数 T,表示数据组数。 接下
921 0
+关注
javaboy2012
学习是一种精神,分享是一种美德
323
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载