2011-10-25 210 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