【发布时间】:2015-02-12 20:51:44
【问题描述】:
我正在尝试修改上传脚本,目前我可以在调整大小时将图像裁剪为正方形 - 太好了!
但是我希望用户能够上传任何尺寸的图片,并让脚本创建 200x150、400x300、800x600 的缩略图/图片 - 4:3 的比例。
到目前为止我的代码是:
list($width,$height) = getimagesize($uploadedfile);
if ($thumb == 1){
if ($width > $height) {
$y = 0;
$x = ($width - $height) / 2;
$smallestSide = $height;
} else {
$x = 0;
$y = ($height - $width) / 2;
$smallestSide = $width;
}
// copying the part into thumbnail
$thumbSize = 200;
$tmp = imagecreatetruecolor($thumbSize, $thumbSize);
imagecopyresampled($tmp, $src, 0, 0, $x, $y, $thumbSize, $thumbSize, $smallestSide, $smallestSide);
// write thumbnail to disk
$write_thumbimage = $folder .'/thumb-'. $image;
switch($ext){
case "gif":
imagegif($tmp,$write_thumbimage);
break;
case "jpg":
imagejpeg($tmp,$write_thumbimage,100);
break;
case "jpeg":
imagejpeg($tmp,$write_thumbimage,100);
break;
case "png":
imagepng($tmp,$write_thumbimage);
break;
}
有谁知道所需的公式或可以指出正确的方向吗?
【问题讨论】:
-
如果是您所追求的数学,要计算此纵横比的宽度和高度,请参阅可能的重复项。这是针对 C# 的,但是从代码中应该很清楚如何做到这一点。
-
@halfer - 我关注的是 PHP 中的代码解释,而不是 C#,所以几乎没有重复?
-
^ 也就是说,它确实有帮助:-)
-
希望如此 - 请记住,Stack Overflow 不是“为我编写代码”网站
:-)。