2013-01-22 59 views
-3

我有一些像4000x3000這樣的大分辨率的圖片。我想創建一個Java程序,可以將圖像大小重新設置爲像1000x900這樣的小例子。任何人都可以告訴我一些特定的Java庫,它可以幫助我完成這項任務。如果你可以發佈任何鏈接到這樣的教程,這將是非常有幫助的。使用java程序重新調整大小圖像

+2

看到這個答案http://stackoverflow.com/questions/603283/what-is-the-best-java-image-processing-library-approach – notXX

+0

你可以檢查[this](http://stackoverflow.com/questions/11959758/java -tenance-aspect-ratio-of-jpanel-background-image/11959928#11959928)以及 – MadProgrammer

回答

1

你可以得到它調用使用Java本地類此方法:

import java.awt.Graphics2D; 
import java.awt.Image; 
import java.awt.image.BufferedImage; 
... 

public static BufferedImage resizeImage(Image originalImage, int newWidth, int newHeight) { 
    BufferedImage resizedImage = new BufferedImage(newWidth, newHeight, BufferedImage.TYPE_INT_ARGB); 
    Graphics2D g = resizedImage.createGraphics(); 

    g.setComposite(AlphaComposite.Src); 
    g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); 
    g.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); 
    g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); 

    g.drawImage(originalImage, 0, 0, newWidth, newHeight, this); 
    g.dispose(); 
    return resizedImage; 
} 

有許多圖像類型(BINARY,灰度,RGB,BGR,ARGB ,ABGR ...)。您可以選擇一個(因爲我選擇了BufferedImage.TYPE_INT_ARGB),或者將此值聲明爲參數。 只需快速瀏覽BufferedImage類即可瞭解詳細信息。

+0

謝謝arutaku,我會試試看 –

1

請在嘗試谷歌之前在這裏提交一個帖子...... http://www.mkyong.com/java/how-to-resize-an-image-in-java/,一個簡單的谷歌會爲您提供豐富的resulst,如果那些不適合您的需要,那麼你可以嘗試在這裏問。

+1

謝謝Ewe Seong,是的,這正是我一直在尋找的。下次我肯定會在谷歌搜索之前在這裏發佈一個問題:) –