如何调整和裁剪图像的中心,以获得高质量的图像


How to resize and crop center of image with high quality image?

如何调整和裁剪高质量图像的图像中心?

如;垂直图像示例

首先我有图像200x300px,我想将图像widthheight调整为100 px

然后用高质量的图像裁剪(100x100px)图像中心

最后一次上传到服务器。

请告诉我可以这样做的代码或脚本

谢谢你^^

请在此链接中添加图像^^

http://image.ohozaa.com/i/1d6/IvHU1b.png

如果使用PHP,请使用ImageMagick扩展。只需使用Imagick::scaleImage()和Imagick::cropImage()方法。

注意:你可以使用Imagick::getSize()方法来获取图像的宽度和高度,然后取两者中较小的那个,除以100得到比例因子,然后将宽度和高度同时除以作为缩放方法的参数。然后检查大边比100长多少,并在裁剪方法中使用该数字的一半作为相关偏移量。

另一个选择是使用CSS来缩放和居中图像。

这对我来说很有效。你可以试试:

// my final thumb
$x = 100;
$y = 100;
// ratio thumb
$ratio_thumb = $x / $y;
// original size
list($xx, $yy) = getimagesize($image);
// ratio original
$ratio_original = $xx / $yy;
if ($ratio_original >= $ratio_thumb) {
    $yo = $yy;
    $xo = ceil(($yo * $x) / $y);
    $xo_ini = ceil(($xx - $xo) / 2);
    $xy_ini = 0;
} else {
    $xo = $xx;
    $yo = ceil(($xo * $y) / $x);
    $xy_ini = ceil(($yy - $yo) / 2);
    $xo_ini = 0;
}
imagecopyresampled($thumb, $source, 0, 0, $xo_ini, $xy_ini, $x, $y, $xo, $yo);