`
Javahuhui
  • 浏览: 80785 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Java截图

    博客分类:
  • Java
 
阅读更多
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截图程序是一种基于Java编程语言实现的图形用户界面(GUI)工具,用于捕获和保存计算机屏幕上的图像。本程序的特色在于它提供了与QQ截图类似的功能,这意味着它可能包括了区域选择、实时预览、编辑工具以及快速...

    JAVA截图小工具

    《JAVA截图小工具详解》 JAVA截图小工具是一款基于Java编程语言开发的实用应用程序,它为用户提供了方便快捷的屏幕截图功能。通过这款工具,用户能够轻松捕获屏幕上的任何区域,并将其保存到本地,同时自动复制到...

    java截图小工具

    Java截图小工具是一种基于Java编程语言实现的程序,它能够帮助用户捕获并保存计算机屏幕上的图像。在本文中,我们将深入探讨如何使用Java来创建一个简单的截图工具,包括涉及的关键类、方法以及实现过程。 首先,...

    很牛的Java截图工具源码

    Java截图工具源码是开发者们常用的实用工具之一,它能够帮助程序员在开发过程中快速获取屏幕快照,便于问题排查、功能演示或者用户交互设计。这个“很牛的Java截图工具源码”提供了一种高效、易用的方法来实现这一...

    Java截图小工具-附源码.rar

    Java截图小工具是一款基于Java语言开发的实用程序,它允许用户快速、方便地截取屏幕图像。本项目附带了完整的源代码,为开发者提供了一个学习和参考的实例,可以帮助初学者更好地理解Java图形用户界面(GUI)编程...

    java截屏小类

    一个很是用的java截屏小类,适合初学者,有注释,希望对大家的学习有帮助。

    java截屏小程序 附源码

    java截屏小程序 附源码,不能登QQ的时候可以讲究下,jar格式的,运行鼠标框选截屏内容,右键点击保存或退出。java新手,望多指教

    java截屏小助手(含源码)

    【标签】:“java 截屏 截取屏幕 截图 截取图片” 这些标签明确了该软件的主要功能,即截取屏幕并保存为图片。在Java中实现这一功能通常涉及到AWT或Swing库中的图形和事件处理,如`java.awt.Robot`类用于捕捉屏幕...

    java 截图源代码

    超好用的java截图工具,源代码。 功能:1、左键按下选中所需截图区域,会有边框显示该区域 2、左键释放,会弹出菜单选择保存还是添加到系统粘贴板中 3、移动鼠标,随时显示图上对应点的ARGB值

    Java截屏+图像处理

    1. **Java截屏**: 要实现截屏功能,我们通常需要获取屏幕的大小,然后创建一个BufferedImage对象来存储截图。以下是一个简单的截屏示例: ```java import java.awt.*; import java.awt.image.BufferedImage; ...

    java截图代码

    ### Java截图代码详解 #### 1. 引入必要的库 ```java import java.awt.AWTException; import java.awt.BorderLayout; import java.awt.Button; //...(省略部分导入) import javax.imageio.ImageIO; ``` 这些导入...

    很牛的Java截图工具

    【Java截图工具详解】 在Java编程环境中,开发一款强大的截图工具是相当实用的,尤其对于开发者来说,可以方便地进行程序界面的展示和问题定位。本篇将详细讲解这款名为"很牛的Java截图工具"的功能特性、核心实现...

    JAVA截图技术

    ### JAVA截图技术详解 在日常开发工作中,截图功能是一个实用且常见的需求,尤其是在即时通讯、远程协作等场景中。本文将详细介绍如何利用Java语言来实现类似QQ截图的功能,并深入探讨其实现原理和技术细节。 ####...

    Java截屏保存系统剪切板

    Java截屏保存系统剪切板是一项实用的技术,它允许用户通过编程方式截取屏幕快照,并将该图像存储到系统剪贴板中,以便于后续的复制和粘贴操作。这项技术主要基于Java的标准版(Java SE)环境,利用了Java的AWT和...

    JAVA截屏代码+单机软件

    AWT提供了基本的图形和窗口组件,如`java.awt.Robot`类,可以用于创建屏幕截图。Swing则是在AWT之上构建的更高级的图形用户界面库,但在这个场景下,我们主要使用AWT。 2. **java.awt.Robot类**: `Robot`类是实现...

    java截图嵌入工具,给java嵌入截图

    java截图嵌入工具,给java嵌入截图

    Swing学习之两个java截屏程序的实现

    在"Swing学习之两个java截屏程序的实现"这个主题中,我们将探讨如何利用Swing和Java的一些基本功能来开发屏幕截图应用程序。这里有两个关键的Java类文件:CaptureScreen.java和RobotToolMain.java,它们分别代表了两...

    java截屏小程序

    Java截屏小程序是一种实用工具,它允许用户在Java环境中实现屏幕捕获功能。这个程序能够创建PNG、JPG和GIF三种格式的图像文件,满足了不同场景下的需求。源码的提供使得开发者可以直接查看和学习其内部实现,进一步...

    java 截屏.rar

    在Java编程语言中,截屏功能的实现是一个实用且有趣的任务。通过Java,我们可以编写程序来捕获系统桌面的图像,这在自动化测试、教学演示或者游戏开发等场景中非常有用。下面,我们将深入探讨如何使用Java进行屏幕...

    Java屏幕截屏源代码

    在Java编程环境中,实现屏幕截屏的功能是一项实用的技术,它允许开发者捕获用户电脑的屏幕内容并保存为图像文件。这个“Java屏幕截屏源代码”项目就是针对这一需求而设计的,它模拟了Windows系统下的PrintScreen键...

Global site tag (gtag.js) - Google Analytics