java实现图片裁切的工具类实例


本文实例讲述了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程序设计有所帮助。


« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3