我正在尝试在PHP
. 但是现有的示例要么立即将图像裁剪为所需的大小,要么在保持比例的同时简单地重新采样,或者通常在所有失真的情况下对其进行压缩。当图像在保持比例的同时缩小到较小的一侧时,我还需要一个选项,并且当它已经缩小时,将其裁剪为所需的大小。
在保持较小比例的同时按比例缩小的代码:
<?php
header('Content-Type: image/jpeg');
$filename = 'image.jpg';
$width = 480;
$height = 320;
list($width_orig, $height_orig) = getimagesize($filename);
$ratio_orig = $width_orig/$height_orig;
if ($width/$height < $ratio_orig) {
$width = $height*$ratio_orig;
} else {
$height = $width/$ratio_orig;
}
$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
imagejpeg($image_p, null, 100);
?>
答案被我找到了,突然会有人派上用场。该代码将图像缩小到较小的一侧,然后围绕边缘裁剪图像以获得所需的尺寸。这是工作代码:
原始答案:EngSO