调整图像大小,同时保持Java中的宽高比

我试图在java内存中调整bufferdImage的大小,但是要保持图像的宽高比
我有这样的东西,但这不是很好

int w = picture.getWidth();
int h = picture.getWidth();
int neww=w;
int newh=h;
int wfactor = w;
int hfactor = h;
if(w > DEFULT_PICTURE_WIDTH || h > DEFULT_PICTURE_HIGHT)
{
    while(neww > DEFULT_PICTURE_WIDTH)
    {
        neww = wfactor /2;
        newh = hfactor /2;
        wfactor = neww;
        hfactor = newh;
    }
}

picture = Utils.resizePicture(picture,neww,newh);
您可能可以看看perils-of-image-getscaledinstance.html,这解释了为什么应该避免在某些答案中使用的getScaledInstance()。

该文章还提供了替代代码。

转载注明原文:调整图像大小,同时保持Java中的宽高比 - 代码日志