- 先给出裁剪一个图片的步骤
- // 首先通过ImageIo中的方法,创建一个Image + InputStream到内存
- // 再按照指定格式构造一个Reader(Reader不能new的)
- // 再通过ImageReader绑定 InputStream
- // 设置感兴趣的源区域。
- // 从 reader得到BufferImage
- // 将BuffeerImage写出通过ImageIO
下面给出代码
public static void cutImage(String filePath, int x, int y, int w, int h)
throws Exception {
// 首先通过ImageIo中的方法,创建一个Image + InputStream到内存
ImageInputStream iis = ImageIO
.createImageInputStream(new FileInputStream(filePath));
// 再按照指定格式构造一个Reader(Reader不能new的)
Iterator it = ImageIO.getImageReadersByFormatName("png");
ImageReader imagereader = (ImageReader) it.next();
// 再通过ImageReader绑定 InputStream
imagereader.setInput(iis);
// 设置感兴趣的源区域。
ImageReadParam par = imagereader.getDefaultReadParam();
par.setSourceRegion(new Rectangle(x, y, w, h));
// 从 reader得到BufferImage
BufferedImage bi = imagereader.read(0, par);
// 将BuffeerImage写出通过ImageIO
ImageIO.write(bi, "png", new File(filePath));
}