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 {
// ===源图片路径名称如:c:\1.jpg
private String srcpath;
// ===剪切图片存放路径名称。如:c:\2.jpg
private String subpath;
// ===剪切点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("jpg");
ImageReader reader = it.next();
// 获取图片流
iis = ImageIO.createImageInputStream(is);
/**
* iis:读取源。true:只向前搜索
* 将它标记为 ‘只向前搜索’。
* 此设置意味着包含在输入源中的图像将只按顺序读取,可能允许 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, "jpg", 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 static void main(String[] args) throws Exception {
String name = "D:\\ZHANG.jpg";
OperateImage o = new OperateImage(180, 180, 180, 180);
o.setSrcpath(name);
o.setSubpath("F:\\6669.jpg");
o.cut();
}
}
分享到:
相关推荐
Java截图程序是一种基于Java编程语言实现的图形用户界面(GUI)工具,用于捕获和保存计算机屏幕上的图像。本程序的特色在于它提供了与QQ截图类似的功能,这意味着它可能包括了区域选择、实时预览、编辑工具以及快速...
《JAVA截图小工具详解》 JAVA截图小工具是一款基于Java编程语言开发的实用应用程序,它为用户提供了方便快捷的屏幕截图功能。通过这款工具,用户能够轻松捕获屏幕上的任何区域,并将其保存到本地,同时自动复制到...
Java截图小工具是一种基于Java编程语言实现的程序,它能够帮助用户捕获并保存计算机屏幕上的图像。在本文中,我们将深入探讨如何使用Java来创建一个简单的截图工具,包括涉及的关键类、方法以及实现过程。 首先,...
Java截图工具源码是开发者们常用的实用工具之一,它能够帮助程序员在开发过程中快速获取屏幕快照,便于问题排查、功能演示或者用户交互设计。这个“很牛的Java截图工具源码”提供了一种高效、易用的方法来实现这一...
Java截图小工具是一款基于Java语言开发的实用程序,它允许用户快速、方便地截取屏幕图像。本项目附带了完整的源代码,为开发者提供了一个学习和参考的实例,可以帮助初学者更好地理解Java图形用户界面(GUI)编程...
一个很是用的java截屏小类,适合初学者,有注释,希望对大家的学习有帮助。
java截屏小程序 附源码,不能登QQ的时候可以讲究下,jar格式的,运行鼠标框选截屏内容,右键点击保存或退出。java新手,望多指教
【标签】:“java 截屏 截取屏幕 截图 截取图片” 这些标签明确了该软件的主要功能,即截取屏幕并保存为图片。在Java中实现这一功能通常涉及到AWT或Swing库中的图形和事件处理,如`java.awt.Robot`类用于捕捉屏幕...
超好用的java截图工具,源代码。 功能:1、左键按下选中所需截图区域,会有边框显示该区域 2、左键释放,会弹出菜单选择保存还是添加到系统粘贴板中 3、移动鼠标,随时显示图上对应点的ARGB值
1. **Java截屏**: 要实现截屏功能,我们通常需要获取屏幕的大小,然后创建一个BufferedImage对象来存储截图。以下是一个简单的截屏示例: ```java import java.awt.*; import java.awt.image.BufferedImage; ...
### Java截图代码详解 #### 1. 引入必要的库 ```java import java.awt.AWTException; import java.awt.BorderLayout; import java.awt.Button; //...(省略部分导入) import javax.imageio.ImageIO; ``` 这些导入...
【Java截图工具详解】 在Java编程环境中,开发一款强大的截图工具是相当实用的,尤其对于开发者来说,可以方便地进行程序界面的展示和问题定位。本篇将详细讲解这款名为"很牛的Java截图工具"的功能特性、核心实现...
### JAVA截图技术详解 在日常开发工作中,截图功能是一个实用且常见的需求,尤其是在即时通讯、远程协作等场景中。本文将详细介绍如何利用Java语言来实现类似QQ截图的功能,并深入探讨其实现原理和技术细节。 ####...
Java截屏保存系统剪切板是一项实用的技术,它允许用户通过编程方式截取屏幕快照,并将该图像存储到系统剪贴板中,以便于后续的复制和粘贴操作。这项技术主要基于Java的标准版(Java SE)环境,利用了Java的AWT和...
AWT提供了基本的图形和窗口组件,如`java.awt.Robot`类,可以用于创建屏幕截图。Swing则是在AWT之上构建的更高级的图形用户界面库,但在这个场景下,我们主要使用AWT。 2. **java.awt.Robot类**: `Robot`类是实现...
java截图嵌入工具,给java嵌入截图
在"Swing学习之两个java截屏程序的实现"这个主题中,我们将探讨如何利用Swing和Java的一些基本功能来开发屏幕截图应用程序。这里有两个关键的Java类文件:CaptureScreen.java和RobotToolMain.java,它们分别代表了两...
Java截屏小程序是一种实用工具,它允许用户在Java环境中实现屏幕捕获功能。这个程序能够创建PNG、JPG和GIF三种格式的图像文件,满足了不同场景下的需求。源码的提供使得开发者可以直接查看和学习其内部实现,进一步...
在Java编程语言中,截屏功能的实现是一个实用且有趣的任务。通过Java,我们可以编写程序来捕获系统桌面的图像,这在自动化测试、教学演示或者游戏开发等场景中非常有用。下面,我们将深入探讨如何使用Java进行屏幕...
在Java编程环境中,实现屏幕截屏的功能是一项实用的技术,它允许开发者捕获用户电脑的屏幕内容并保存为图像文件。这个“Java屏幕截屏源代码”项目就是针对这一需求而设计的,它模拟了Windows系统下的PrintScreen键...