gpt4 book ai didi

php 图像调整大小 - 从中​​心平方/裁剪缩略图?

转载 作者:行者123 更新时间:2023-12-04 05:56:52 40 4
gpt4 key购买 nike

我有一个图像上传脚本,可以将上传的图像大小调整为 150x150 像素。如果图像是方形的那就太好了,但是如果有人上传了一张 640x200 像素的图像,它看起来就不漂亮了。

所以我基本上需要它根据图像的中心自动创建一个方形缩略图。如果图像较宽,则应裁剪掉左右两侧。如果图像更高,它应该从顶部和底部剪掉。

我在网上找到了一个代码修改,准确地说是:

Upload, resize, and crop center of image with PHP

我对 PHP 不是很好,我已经在这方面工作了几个小时,试图将我下面的代码与上面的选项结合起来。如果有人可以帮助我,那就太好了:)

                                $target_path = "avatars/";
$image = $_FILES['uploadedfile']['name'];
$target_path = $target_path . basename( $_FILES['uploadedfile']['name']);
$_POST["userpic"]=$_FILES['uploadedfile']['name'];
if($_FILES['uploadedfile']['tmp_name']!="") {
$imagetype=explode(".",$_POST["userpic"]);

if($imagetype[1]=="jpg" || $imagetype[1]=="JPG" || $imagetype[1]=="gif" || $imagetype[1]=="GIF")
{
$target_path = "avatars/";
$thaid=$_POST["user_id"];
$target_path = $target_path .$thaid.".".$imagetype[1];
$target_path2 =$thaid.".".$imagetype[1];
move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path);
$_POST["userpic"]=$target_path2;
$n_width=$setts['avatar_width'];
$n_height=$setts['avatar_height'];
$tsrc=$target_path;
$add=$target_path;

if($imagetype[1]=="jpg" || $imagetype[1]=="JPG")
{
$im=imagecreatefromjpeg($add);
$width=imagesx($im);
$height=imagesy($im);
$newimage=imagecreatetruecolor($n_width,$n_height);


$ar = 1.00;

if ($ar < 1) { // "tall" crop
$cropWidth = min($height * $ar, $width);
$cropHeight = $cropWidth / $ar;
}
else { // "wide" crop
$cropHeight = min($width / $ar, $height);
$cropWidth = $cropHeight * $ar;
}


imagecopyresized($newimage,$im,0,0,0,0,$n_width,$n_height,$cropWidth,$cropHeight);
imagejpeg($newimage,$tsrc,100);
}
if($imagetype[1]=="gif" || $imagetype[1]=="GIF")
{
$im=imagecreatefromgif($add);
$width=imagesx($im);
$height=imagesy($im);
$newimage=imagecreatetruecolor($n_width,$n_height);
imagecopyresized($newimage,$im,0,0,0,0,$n_width,$n_height,$width,$height);
imagegif($newimage,$tsrc,100);
}
}
else
{
$_POST["userpic"]="noimage.jpg";
}
}

最佳答案

如果您安装了 ImageMagick,您可以执行以下操作:

<?php
$i = new Imagick();
$i->readImage($file);
$i->cropThumbnailImage($w,$h);

这样,您实际上不必担心数学问题。

关于php 图像调整大小 - 从中​​心平方/裁剪缩略图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9410111/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com