Java图片操作-裁剪图片

时间:2022-08-20 09:00:40
  • 先给出裁剪一个图片的步骤
  • // 首先通过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));

}