我正在尝试在Java中剪切图像的特定部分并将其保存回磁盘。是否有一种函数可以从指定的X、Y剪切图像,并具有指定的宽度和高度?
通常你需要:
BufferedImage
(下面使用dst
)并指定所需的宽度和高度。Graphics
对象。src
)。BufferedImage
上。ImageIO
将缓冲图像写入文件。代码如下:
Image src = ImageIO.read(new File("duke.jpg"));
int x = 10, y = 20, w = 40, h = 50;
BufferedImage dst = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB);
dst.getGraphics().drawImage(src, 0, 0, w, h, x, y, x + w, y + h, null);
ImageIO.write(dst, "png", new File("duke_cropped.png"));
给定这个 .jpg 文件...
...它会生成这个 .png 文件: