在保持比率的同时理解调整图像大小的数学

时间:2013-09-16 11:24:02

标签: php image-processing gd

我不知道这个问题是否适合这里,但我想了解调整图像大小的公式,同时保持PHP GD库或其他任何内容的比例。

例如,这是一个例子: http://salman-w.blogspot.com/2008/10/resize-images-using-phpgd-library.html

在此示例中,如果“target_aspect_ratio”大于“original_aspect_ratio”,则height为targe_height,宽度由target_height * original_aspect_ratio计算。

如果“original_aspect_ratio”大于“target_aspect_ratio”,则目标宽度为target_width,高度由target_width / original_aspect_ratio计算

为什么?

1 个答案:

答案 0 :(得分:1)

在保持比率时,我总是调整图像大小的方法是使用如下算法:

$imgHeight=600; // Or the actual image height.
$imgWidth=300;  // Or again the width of the image
$imgRatio=$imgHeight/$imgWidth;

然后,要调整图像大小,您可以使用以下内容:

$newHeight=1000;
resize($newHeight, ($newHeight/$imgRatio)); 
// assumes Height x Width in the resize command.

使用此方法,您可以获得原始图像的比例,然后将其应用于您需要的任何大小。

编辑:

如果您正在制作缩略图,您通常会希望将所有缩略图的图像大小保持相同的大小 - 因此它们可以很好地排列在页面上。我建议调整图像的大小,使调整大小的图像适合实际的缩略图 - 基本上在顶部或底部给它空间,然后用背景颜色填充它或保持透明,以便它与其余部分一起使用站点。