2011-10-25 177 views
3

我试图在Java中剪切图像的某个部分并将其保存回磁盘。是否有一个函数从指定的宽度和高度切割X,Y的图像?在Java中裁剪图像

+0

你有没有尝试在你最喜欢的搜索引擎中输入“java image crop”?或者在stackoverflow搜索字段? –

+0

[如何在现有图像文件的顶部添加20个像素的白色?]可能的重复?(http://stackoverflow.com/questions/7028780/how-to-add-20-pixels-of-white-at现有图像文件的顶部) – Cerbrus

+1

为什么这个封闭的“太宽”?甚至已经发布了一个清晰简洁的答案! – aioobe

回答

15

你会通常

  1. 创建一个新的BufferedImagedst下文)与期望的宽度和高度。它
  2. 获取保持的Graphics对象
  3. 将原件图像.JPEG(下面src
  4. 涂料的所希望的部分,到BufferedImage
  5. 收件被缓冲的图像使用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 ...

enter image description here

......它生成此巴纽:

enter image description here

+1

谢谢...为您的帮助 – Akash