我有我調整圖像大小:Java的圖像大小調整,保持縱橫比
if((width != null) || (height != null))
{
try{
// scale image on disk
BufferedImage originalImage = ImageIO.read(file);
int type = originalImage.getType() == 0? BufferedImage.TYPE_INT_ARGB
: originalImage.getType();
BufferedImage resizeImageJpg = resizeImage(originalImage, type, 200, 200);
ImageIO.write(resizeImageJpg, "jpg", file);
} catch(IOException e) {
System.out.println(e.getMessage());
}
}
這是我如何調整圖像大小:
private static BufferedImage resizeImage(BufferedImage originalImage, int type,
Integer img_width, Integer img_height)
{
BufferedImage resizedImage = new BufferedImage(img_width, img_height, type);
Graphics2D g = resizedImage.createGraphics();
g.drawImage(originalImage, 0, 0, img_width, img_height, null);
g.dispose();
return resizedImage;
}
現在的問題是我還需要保持方面比。也就是說,我需要新的200/200圖像來包含縮放後的新圖像。這樣的事情:
我嘗試了一些東西,但沒有按預期工作。 任何幫助表示讚賞。非常感謝。
我使用了相同的邏輯來調整android中的位圖大小。 – 2012-06-27 00:15:48
@Ozzy的答案除了不需要縮放(或者更具體地說,當原始寬度小於邊界時)時是正確的。初始化'new_width'和'new_height'爲'original_width'和'original_height'解決了這個問題。 – 2013-01-29 22:57:41
這個答案只是我的一天。 :D – 2015-10-16 18:30:35