2016-06-07 110 views
0

因此,我在我的网络应用程序中上传各种照片。 我想调整图像的大小,使纵横比不会改变,并且min(height,width) = 400px将BufferedImage调整为固定尺寸

任何好的和快速的解决方案? (当照片上传时,我不刷新页面,并显示图像预览)

+0

您可能还会发现[此示例](http://stackoverflow.com/questions/14115950/quality-of-image-after-resize-very-low-java/14116752#14116752)(这是其他答案)有用 – MadProgrammer

回答

2

使用getScaledInstance方法,使用内置功能很容易完成。你可以这样使用它:

if(img.getWidth() > img.getHeight()){ 
    return img.getScaledInstance(400, -1, Image.SCALE_SMOOTH); 
} else{ 
    return img.getScaledInstance(-1, 400, Image.SCALE_SMOOTH); 
} 

这将保持高宽比,并将较大的轴设置为400像素。如果您更喜欢速度超过质量,您也可以更改缩放算法。

+0

[Image.getScaledInstance的危害()](https://today.java.net/pub/a/today/2007/04/03/perils-of-image-getscaledinstance.html) – MadProgrammer