java截取图片-设置方位+设置大小
package com.onegrid.darj.test;
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 OperateImage {
public static void main(String[] args) throws IOException {
OperateImage image = new OperateImage(150,140,240,250);
image.setSrcpath("e:/building-data-bg.jpg");
image.setSubpath("f:/building-data-bg.jpg");
image.setLastdir("jpg");
image.cut();
}
// ===源图片路径名称如:c:\1.jpg
private String srcpath ;
// ===剪切图片存放路径名称.如:c:\2.jpg
private String subpath ;
//后缀 如 jpg png gif
private String lastdir;
// ===剪切点x坐标
private int x ;
private int y ;
// ===剪切点宽度
private int width ;
private int height ;
public OperateImage() {
}
public OperateImage( int x, int y, int width, int height) {
this .x = x ;
this .y = y ;
this .width = width ;
this .height = height ;
}
/**
* 对图片裁剪,并把裁剪完蛋新图片保存 。
*/
public void cut()throws IOException {
FileInputStream is = null ;
ImageInputStream iis = null ;
try {
// 读取图片文件
is =new FileInputStream(srcpath);
/*
* 返回包含所有当前已注册 ImageReader 的 Iterator,这些 ImageReader
* 声称能够解码指定格式。 参数:formatName - 包含非正式格式名称 .
*(例如 "jpeg" 或 "tiff")等 。
*/
Iterator < ImageReader > it=ImageIO.getImageReadersByFormatName(lastdir);
ImageReader reader = it.next();
// 获取图片流
iis = ImageIO.createImageInputStream(is);
/*
* <p>iis:读取源.true:只向前搜索 </p>.将它标记为 ‘只向前搜索’。
* 此设置意味着包含在输入源中的图像将只按顺序读取,可能允许 reader
* 避免缓存包含与以前已经读取的图像关联的数据的那些输入部分。
*/
reader.setInput(iis, true ) ;
/*
* <p>描述如何对流进行解码的类<p>.用于指定如何在输入时从 Java Image I/O
* 框架的上下文中的流转换一幅图像或一组图像。用于特定图像格式的插件
* 将从其 ImageReader 实现的 getDefaultReadParam 方法中返回
* ImageReadParam 的实例。
*/
ImageReadParam param = reader.getDefaultReadParam();
/*
* 图片裁剪区域。Rectangle 指定了坐标空间中的一个区域,通过 Rectangle 对象
* 的左上顶点的坐标(x,y)、宽度和高度可以定义这个区域。
*/
Rectangle rect = new Rectangle(x, y, width, height);
// 提供一个 BufferedImage,将其用作解码像素数据的目标。
param.setSourceRegion(rect);
/*
* 使用所提供的 ImageReadParam 读取通过索引 imageIndex 指定的对象,并将
* 它作为一个完整的 BufferedImage 返回。
*/
BufferedImage bi=reader.read(0,param);
// 保存新图片
ImageIO.write(bi,lastdir,new File(subpath));
} finally {
if (is != null )
is.close() ;
if (iis != null )
iis.close();
}
}
public int getHeight() {
return height;
}
public void setHeight( int height) {
this .height = height;
}
public String getSrcpath() {
return srcpath;
}
public void setSrcpath(String srcpath) {
this .srcpath = srcpath;
}
public String getSubpath() {
return subpath;
}
public void setSubpath(String subpath) {
this .subpath = subpath;
}
public int getWidth() {
return width;
}
public void setWidth( int width) {
this .width = width;
}
public int getX() {
return x;
}
public void setX( int x) {
this .x = x;
}
public int getY() {
return y;
}
public void setY( int y) {
this .y = y;
}
public String getLastdir() {
return lastdir;
}
public void setLastdir(String lastdir) {
this.lastdir = lastdir;
}
}
分享到:
相关推荐
本项目是一套基于SSM的娱乐影视公司管理系统,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的Java学习者。也可作为课程设计、期末大作业 包含:项目源码、数据库脚本、开发说明文档、LW、演示视频、...
Java毕业设计-基于Java+MySQL的CRM客户关系管理系统,是一个集客户管理、销售跟踪、市场营销、客户服务于一体的综合性系统。本系统采用Java作为主要开发语言,结合MySQL数据库的强大功能,实现了对客户信息的全面...
微信小程序项目源码-模拟考试+SSM框架+论文...此外,项目还支持论文提交、评审、答辩等流程管理,满足用户对学术研究的全方位需求。整个项目源码开放,便于二次开发定制,可根据不同教育机构的实际需求进行个性化调整。
核心功能包括房源搜索、在线看房、在线预约、合同签订以及租后服务,满足用户从找房到入住的全方位需求。 用户可通过精准定位快速找到附近房源,利用高清图片和视频了解房源细节。遇到心仪房源,可在线预约看房时间...
通过微信小程序的便捷性,为游客提供全方位的乡村游体验。 **核心功能:** 1. **信息查询**:平台提供详尽的乡村旅游景点信息,包括景点介绍、门票价格、开放时间等,帮助游客快速了解目的地。 2. **在线预订**:...
在技术方面,后端采用了SpringBoot框架,这是一个开源的Java基础项目,可以帮助开发者快速构建高效的、独立的、可运行的Spring应用。前端则使用了微信小程序和Vue,微信小程序是一种不需要下载安装即可使用的应用,...
该资源是一个关于数学辅导的微信小程序,包括源码、...通过这些功能,该数学辅导小程序可以帮助用户解决数学问题、提供数学知识和练习题,同时还可以进行学习计划管理和社区交流,为用户提供全方位的数学学习辅导服务。
该系统集成了项目申报、审批、管理等一系列功能,采用现代化的信息技术手段,为企事业单位提供全方位的项目申报解决方案。 该微信小程序具有以下核心功能: 1. 项目申报:用户可在线填写项目申报表单,支持文本、...
国海证券-20230407-AIGC+电商专题报告:变革正当时,人货场有望全方位升级.pdf
Java程序员面试宝典、JAVA核心面试知识整理、Java面经-百度准入职老哥整理、Java面试宝典2018版【超全】很不错、Java面试精选72题、JAVA面试题解惑系列、Java面试题以及答案(小生)、Java面试突击-V1.0、Java面试突击...
本项目为基于JSP技术开发的宠物管理系统,实现宠物信息的全方位管理与服务。核心功能包括:宠物档案创建与查询、疫苗接种提醒、宠物寄养预约、宠物用品在线购买、宠物知识库及问答交流等。系统采用B/S架构,用户界面...
打造全方位五星安全保障 一体化管理平台,确保系统稳定,数据安全 目标| 智慧小区-互联网+智能小区-智能安防设计方案解决方案全文共57页,当前为第6页。 内容目录| 方案介绍 2 现状分析 1 方案亮点 3 案例介绍 5 ...
java se6 全方位学习 ---源代码及附录
测量知识——方位角;方位角——坐标系;方位角定义: 是从某点的指北方向线起,依顺时针方向到目标方向线之间的水平夹角。 范围(0°~360°),正方位角与反方位角是±180°的关系;前进方向:1?2 ?3 ?4 β2—右角,β3...
小学初中少儿英语课堂游戏-初中英语语法--方位介词游戏.pdf
本资源为Java技术面试宝典,涵盖了Java编程语言的核心概念、常用框架、面试题目等内容,适用于准备Java技术面试的程序员和学生。本宝典旨在帮助读者全面、系统地掌握Java面试所需的知识和技能,提高面试成功率。本...
SSM框架是当前Java Web开发中非常流行的一套轻量级解决方案,它整合了Spring的IoC和AOP、SpringMVC的Web层和MyBatis的ORM,为开发者提供了高效且灵活的开发体验。 游戏美术外包管理信息系统的开发旨在帮助游戏开发...