比例图像调整大小

时间:2011-06-22 12:48:40

标签: php image resize

我想将上传的图片调整为宽度:180px,比例高度。是否有任何课程可以做到这一点?

感谢您的帮助!

4 个答案:

答案 0 :(得分:8)

我认为这个问题可以使用实际代码示例的答案。下面的代码显示了如何在目录uploaded内调整图像大小,并将调整后的图像保存在文件夹resized中。

<?php
// the file
$filename = 'uploaded/my_image.jpg';

// the desired width of the image
$width = 180;

// content type
header('Content-Type: image/jpeg');

list($width_orig, $height_orig) = getimagesize($filename);

$ratio_orig = $width_orig/$height_orig;
$height = $width/$ratio_orig;

// resample
$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);

// output
imagejpeg($image_p, 'resized/my_image.jpg', 80);
?>

答案 1 :(得分:4)

首先,您需要获取当前图像尺寸:

$width = imagesx($image);
$height = imagesy($image);

然后计算比例因子:

$scalingFactor = $newImageWidth / $width;

当具有缩放因子时,只计算图像的新高度:

$newImageHeight = $height * $scalingFactor;

然后只需创建新图像;

$newImage = imagecreatetruecolor($newImageWidth, $newImageHeight);
imagecopyresampled($newImage, $image, 0, 0, 0, 0, $newImageWidth, $newImageHeight, $width, $height);

这些片段可能会有所帮助:

http://www.codeslices.net/snippets/resize-scale-image-proportionally-to-given-width-in-php http://www.codeslices.net/snippets/resize-scale-image-proportionally-in-php

至少他们为我工作。

答案 2 :(得分:0)

你可以使用imagecopyresampled php函数。您也可以计算出新的尺寸。

答案 3 :(得分:0)

用户jquery插件JCrop,并为图像设置其宽高比... 查看此链接了解详情: http://www.webresourcesdepot.com/jquery-image-crop-plugin-jcrop/