好吧,在我的网站中,我正在尝试使用以下php函数裁剪图像:
function image_resize($target, $newcopy, $w, $h, $ext) {
list($w_orig, $h_orig) = getimagesize($target);
$scale_ratio = $w_orig / $h_orig;
if (($w / $h) > $scale_ratio) {
$w = $h * $scale_ratio;
} else {
$h = $w / $scale_ratio;
}
$img = "";
$ext = strtolower($ext);
if ($ext == "gif"){
$img = imagecreatefromgif($target);
} else if($ext =="png"){
$img = imagecreatefrompng($target);
} else {
$img = imagecreatefromjpeg($target);
}
$tci = imagecreatetruecolor($w, $h);
$backgroundColor = imagecolorallocate($tci, 255, 255, 255);
imagefill($tci, 0, 0, $backgroundColor);
// imagecopyresampled(dst_img, src_img, dst_x, dst_y, src_x, src_y, dst_w, dst_h, src_w, src_h)
imagecopyresampled($tci, $img, 0, 0, 0, 0, $w, $h, $w_orig, $h_orig);
if ($ext == "gif"){
imagegif($tci, $newcopy);
} else if($ext =="png"){
imagepng($tci, $newcopy);
} else {
imagejpeg($tci, $newcopy, 84);
}
}
但它不能正常工作。
例如:我的图片大小为:720 x 478
。当我使用此函数调整大小(我可以在函数调用中设置宽度和高度)时,它会根据宽度裁剪图像。对于例如我这样称呼它:
image_resize($file_destination, "../users_avator/ppic_$file_new_name", 200, 200, $file_ext);
它保存了200 x 132尺寸的图像。 但我不想要
我想要将图像裁剪为200 x 200尺寸,但不剪切图像的任何部分。喜欢:
我看到一个名为cozymeal.com的网站当我在配置文件部分上传相同图像时,其大小为720 x 478
,它会将图像大小神奇地裁剪为200 x 200 ,而不会剪切图像的任何部分< / strong>即可。
原始图片:
我的裁剪结果:
Cozymeal cropping结果:
我的问题是如何修复我的功能/裁剪任何图像,例如这个cozymeal.com裁剪系统?我的意思是自定义大小而不会丢失任何图像部分。
答案 0 :(得分:1)
所有文档都在插件
中如果您对此库感到不舒服,可以使用以下方法之一:https://github.com/ziadoz/awesome-php#imagery
祝你好运:)