PHP脚本来计算图像的宽高比?

时间:2011-11-28 06:41:39

标签: php image resize

我试图找到一种方法来计算图像的宽高比,所以如果我调整图像大小,它将按比例调整大小。有这样的剧本吗?

例如,图像为500x750,容纳图像的容器最大宽度为350 ......所以我需要脚本来计算高度应该与350宽度成比例。

感谢。

5 个答案:

答案 0 :(得分:2)

使用Javascript。

参见本教程: http://www.ajaxblender.com/howto-resize-image-proportionally-using-javascript.html

使用其他人发布的功能:

<?PHP

$imagePath = "images/your_image.png";

list($oldWidth, $height, $type, $attr) = getimagesize($image_path); 

$percentChange = $newWidth / $oldWidth;
$newHeight = round( ( $percentChange *$height ) );

echo '<img src="'.$imagePath.'" height="'.$new_height.'" width="'.$newWidth.'">';

?> 

答案 1 :(得分:1)

我认为这是你正在寻找的php函数:getimagesize

从手册:

  

返回一个包含7个元素的数组。

     

索引0和1分别包含宽度和高度   图像。

以下是如何针对您的问题使用此示例的简短示例:

// get the current size of your image
$data = getimagesize('link/your/image.jpg');

// your defined width
$new_width = 350;

// calculate the ratio
$ratio = $data[0] / $new_width;

// apply the ratio to get the new height of your image
$new_height = round($data[1] / $ratio);

...完成!

答案 2 :(得分:1)

您使用PHP标记标记了您的问题,因此假设您要使用PHP:

要从图像资源获取图像的高度或宽度,请使用imagesx()imagesy()http://www.php.net/manual/en/function.imagesx.php
http://www.php.net/manual/en/function.imagesy.php

要从图像文件中获取图像的高度和宽度,请使用getimagesize()。该函数返回的数组中的项目0和1是图像的宽度和高度。 http://www.php.net/manual/en/function.getimagesize.php

如果您的图像宽500像素,高750像素,并且您的容器宽度为350像素,则可以通过将所需宽度除以实际宽度来计算比率:350/5000.7。因此,要计算高度,请将其乘以该比率(750 * 0.7525)。

答案 3 :(得分:1)

使用getImagesize并通过除以宽高比获得新的高度。

list($width, $height, $type, $attr) = getimagesize("image.jpg");
$aspect = $width / $height;
$newWidth = 350;
$newHeight = $newWidth / $aspect;

答案 4 :(得分:0)

除了以上答案,请查看此链接,也可能有助于检查其代码: http://shiftingpixel.com/2008/03/03/smart-image-resizer/