我想将上传的图片调整为宽度:180px,比例高度。是否有任何课程可以做到这一点?
感谢您的帮助!
答案 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/