如何使用高质量图像调整图像中心的大小和裁剪?
EG;垂直图像的示例
首先我有图片200x300px
,我想将图片width
或height
调整为100 px
然后以高质量图像裁剪(100x100像素)图像中心
上次上传到服务器。
请告诉我可以执行该操作的代码或脚本
谢谢^^
请在此链接中成像^^
答案 0 :(得分:1)
如果您是在PHP中使用,请使用ImageMagick extension。只需使用Imagick::scaleImage()和Imagick::cropImage()方法。
注意:您可以使用Imagick::getSize()方法获取图像的宽度和高度,然后只取两者中的较小者,除以100得到比例因子,然后除以宽度和height设置为scale方法的参数。然后检查大于100的长度超过100,并在裁剪方法中使用该数量的一半用于相关偏移。
另一个选择是使用CSS来缩放和居中图像。有关如何执行此操作的详情,请参阅this answer。
答案 1 :(得分:0)
它对我有用。你可以尝试:
// 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);