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

时间:2014-08-15 17:10:11

标签: javascript php html css image

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

EG;垂直图像的示例

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

然后以高质量图像裁剪(100x100像素)图像中心

上次上传到服务器。

请告诉我可以执行该操作的代码或脚本

谢谢^^

请在此链接中成像^^

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

2 个答案:

答案 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);