最近試着做一個音樂播放器,想添加一個固定大小的圖片框用來放歌曲的專輯封面。搞了很久也沒弄好圖片縮放的問題。上網上查了很多方法,都不對,感覺有好些是根本沒有測試過的就轉載了。最后找到一個很簡單的方法,一句代碼就可以了。
1 Image scaledImage=sourceImage. getScaledInstance(100,100, Image.SCALE_DEFAULT); //得到一個100X100的圖像 2 3 Image doubledImage=sourceImage.getScaledInstance(sourceImage.getWidth(this)*2,sourceImage.getHeight(this)*2, Image.SCALE_DEFAULT); //得到一個放大兩倍的圖像,這個程序一般在一個swing的組件中使用,而類Jcomponent實現了圖像觀察者接口ImageObserver,所有可以使用this。
下面的是這個方法的API描述:
getScaledInstance
public Image getScaledInstance(int width, int height, int hints)
- 創建此圖像的縮放版本。返回一個新的
Image
對象,默認情況下,該對象按指定的width
和height
呈現圖像。即使已經完全加載了初始源圖像,新的Image
對象也可以被異步加載。如果
width
或height
為負數,則替換該值以維持初始圖像尺寸的高寬比。如果width
和height
都為負,則使用初始圖像尺寸。
- 參數:
width
- 將圖像縮放到的寬度。height
- 將圖像縮放到的高度。hints
- 指示用於圖像重新取樣的算法類型的標志。- 返回:
- 圖像的縮放版本。
- 拋出:
IllegalArgumentException
- 如果width
或height
為零。- 從以下版本開始:
- JDK1.1
- 另請參見:
SCALE_DEFAULT
,SCALE_FAST
,SCALE_SMOOTH
,SCALE_REPLICATE
,SCALE_AREA_AVERAGING