调整图像大小以保持纵横比

时间:2011-06-05 07:27:36

标签: image

我希望调整图像大小,同时保持在网页上显示图像的宽高比。最大图像尺寸可以是640x480。可以使用哪个等式来调整图像大小?我不关心新调整大小的图像大小。分辨率应接近640x480像素

2 个答案:

答案 0 :(得分:6)

我用C伪代码解释。首先计算要调整大小的图像的纵横比(“testImage”):

double rat = (double)testImage.Width / (double)testImage.Height;

然后我们将它与640x480图片的宽高比进行比较。如果testImage的比例(“rat”)大于640x480图片的比例,那么我们知道如果我们调整图片大小以使其宽度变为640,其高度将不会超过480.如果testImage的宽高比较小,那么我们可以调整图片大小,使高度变为480而宽度不超过640像素。

const double rat640x480 = 640.0 / 480.0;
if (rat > rat640x480)
    testImage.Resize(Width := 640, Height := 640 / rat);
else
    testImage.Resize(Width := 480 * rat, Height := 480);

答案 1 :(得分:0)

JAVA中的代码变为

double ratio640x480 = 640.0 / 480.0;
double sourceRatio = (double) bitmap.getWidth() / (double) bitmap.getHeight();

if (sourceRatio > ratio640x480)
    bitmap = Bitmap.createScaledBitmap(bitmap, 640, (int) (640 / sourceRatio), true);
else
    bitmap = Bitmap.createScaledBitmap(bitmap, (int) (480 * sourceRatio), 480, true);