java通过ImageReader裁剪图片
/**
* 图片裁剪
*
* @param src 源图片地址,图片格式PNG
* @param dest 目的图片地址
* @param x 图片起始点x座标
* @param y 图片起始点y座标
* @param w 图片宽度
* @param h 图片高度
* @param imageFormat 图片格式:jpg|png
*/
public static void cutImage(String src, String dest, int x, int y, int w, int h, String imageFormat) {
try {
//获取png图片的ImageReader的Iterator
Iterator iterator = ImageIO.getImageReadersByFormatName(imageFormat);
//根据Iterator获取ImageReader
ImageReader reader = (ImageReader) iterator.next();
//获取源图片输入流
InputStream in = new FileInputStream(src);
//根据源图片输入流获得ImageInputStream流
ImageInputStream iis = ImageIO.createImageInputStream(in);
//将ImageInputStream流加载到ImageReader中
reader.setInput(iis, true);
//图片读取参数
ImageReadParam param = reader.getDefaultReadParam();
Rectangle rect = new Rectangle(x, y, w, h);
//参数对象设置形状为一定大小的长方形
param.setSourceRegion(rect);
//ImageReader根据参数对象获得BufferedImage
BufferedImage bi = reader.read(0, param);
//将经过参数对象筛选的图片流写入目标文件中
ImageIO.write(bi, imageFormat, new File(dest));
} catch (IOException e) {
e.printStackTrace();
}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.