如何调整和裁剪高质量图像的图像中心?
如;垂直图像示例
首先我有图像200x300px
,我想将图像width
或height
调整为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);