2012-05-09 68 views
2

我需要調整原始緩衝圖像的寬度爲100px,並保留寬度/高度比例。以下是我正在使用的代碼。有人可以幫助我嗎? 在此先感謝。Java:如何調整像素的緩衝圖像?

int width = 100; 
int height = 100; 

BufferedImage resizedImage = new BufferedImage(width, height, type); 
Graphics2D g = resizedImage.createGraphics(); 
g.drawImage(originalImage, 0, 0, width, height, null); 
g.dispose(); 
+0

你有什麼錯誤? – dbf

+0

它沒有錯誤,但我認爲圖像沒有正確調整大小在100 px與保留寬度/高度比例。 – exception01

回答

1
int imageWidth = originalImage.getWidth(); 
int imageHeight = originalImage.getHeight(); 
height = imageHeight * width/imageWidth; 
// Integer arithmetic doing lossless division last. 

但高度現在可能還小於或大於100

0

好,可以嘗試

int width = 100; 
int height = 100; 
height = originalImage.height()/(originalImage.width()/width) 
3

你可能想看看imgscalr,它是一個簡單的單一課程完全可以用一組簡單的靜態方法來使用:http://www.thebuzzmedia.com/software/imgscalr-java-image-scaling-library/

一個例子我們年齡看起來像:

BufferedImage img = Scalr.resize(src, 100); 

有許多圍繞質量,速度和簡單的圖像OPS爲您提供先進的功能,以及如果需要的話和庫已在許多項目和Web應用程序被部署在生產。

+0

10X鏈接@Riyad Kalla。這看起來像是JAI的絕佳替代品。 –

+0

Peharps,我也可以試試這個。謝謝! – exception01

+0

非常歡迎我很高興它幫助! –