java 根据坐标截取图片实例代码

java 根据坐标截取图片

实例代码:代码中有不是注释,很好看懂!

package com.json.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 { 

  // ===源图片路径名称如: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);  

        /*
        * <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,"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) {
    OperateImage operateImage = new OperateImage(20, 20, 100, 100);
    operateImage.srcpath = "C:/test/1.jpg";
    operateImage.subpath = "C:/test/2.jpg";
    try {
      operateImage.cut();
    } catch (IOException e) {
      e.printStackTrace();
    } 

  }
} 

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

(0)

相关推荐

  • java 根据坐标截取图片实例代码

    java 根据坐标截取图片 实例代码:代码中有不是注释,很好看懂! package com.json.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.

  • java 实现输出随机图片实例代码

    java  实现输出随机图片实例代码 输出随机图片(CAPTCHA图像):Completely Automated Public Turing Test to Tell Computers and Humans Apart (全自动区分计算机和人类的测试) 相关主要类(JDK 查看API) BufferedImage:内存图像 Graphics:画笔 ImageIO:输出图像 放在html页面上<img src/> 注意:浏览器默认会缓存图片 public static int WIDTH =

  • java  实现输出随机图片实例代码

    java  实现输出随机图片实例代码 输出随机图片(CAPTCHA图像):Completely Automated Public Turing Test to Tell Computers and Humans Apart (全自动区分计算机和人类的测试) 相关主要类(JDK 查看API) BufferedImage:内存图像 Graphics:画笔 ImageIO:输出图像 放在html页面上<img src/> 注意:浏览器默认会缓存图片 public static int WIDTH =

  • java随机验证码生成实现实例代码

    java随机验证码生成实现实例代码 摘要: 在项目中有很多情况下都需要使用到随机验证码,这里提供一个java的随机验证码生成方案,可以指定难度,生成的验证码可以很方便的和其他组件搭配 之前要使用一个生成随机验证码的功能,在网上找了一下,有很多的人提出了不同的解决方案,但是很多人都使用了com.sun.image.这个包或者子包里面的类,而这个包结构下面的类都是不推荐使用的,我们应该依赖于java.或者javax.这些包结构下面的类,否则将来的可移植性就很不好(比如换成IBM的JDK就不行了),但

  • java实现远程桌面的实例代码

    java实现远程桌面的实例代码 控制端将鼠标事件传递到服务端 服务端拿到鼠标事件之后传输到客户端 客户端拿到鼠标事件之后,通过robot类即可完成,并且截屏将图片发给服务器,服务器再发给控制端 被我简化之后得到 //先介绍一下robot类的简单使用 import java.awt.AWTException; import java.awt.Robot; import java.awt.event.InputEvent; /** * 使用robot * @author 哑元 * */ public

  • Android 手势 正则匹配图片实例代码

    为没有手势的控件(ViewFlipper) 添加手势 xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools

  • Java Chaos Game噪声游戏实例代码

    [简介] 最近一直在读<深奥的简洁>,里面有一章介绍了几种使用噪声产生分形图的方法,感觉很有意思,于是尝试使用计算机模拟了一下,效果还不错(噪声法比传统迭代法在编程上好实现一些,后来发现这类算法还不少,搜索chaosgame可以找到更多). [Sierpinski三角形的噪声产生法] 在这些噪声游戏中,Sierpinski(谢尔宾斯基)三角形的生成规则可谓是最简单的: 1.在平面上选取三个点,标记为1.2.3,作为大三角形的顶点. 2.选择其中一点,作为"当前点"(比如选择

  • Apache POI将PPT转换成图片实例代码

    本文主要分享的是关于Apache POI将PPT转换成图片的相关内容,简单介绍了Apache POI,具体内容如下. 1.Apache POI 简介 Apache POI 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office格式档案读和写的功能. 可以查看官方文档 Apache POI官网 Apache POI操作PPT文档有两种方式: 1.POI-HSLF 对应的 Powerpoint '97(-2007) 的文

  • Java获取当前操作系统的信息实例代码

    主流有几种方法,一种是用下面的函数 publicstaticStringgetProperty(Stringkey) 键 相关值的描述 java.version java.version Java 运行时环境版本 java.vendor java.vendor Java 运行时环境供应商 java.vendor.url java.vendor.url Java 供应商的 URL java.home java.home Java 安装目录 java.vm.specification.version

  • Java判断上传图片格式的实例代码

    先给大家介绍下java判断上传图片格式. 由于客户上传图片将png的图片的后缀名改为jpg,所以通过后缀名判断不行,用下面这个方法可以 //判断是否是JPG格式 log.info("-1----进入JPG格式判断....."); ImageInputStream iis = ImageIO.createImageInputStream(file.getInputStream()); Iterator<ImageReader> iter = ImageIO.getImageR

随机推荐