我有我调整图像大小: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