php resize&仅在超过特定像素大小时裁剪图像

时间:2016-12-12 09:13:25

标签: php image resize scale

我有一个脚本可以在服务器上缩放图像并保存到自身,这很好,但我喜欢修改它,所以这个脚本仅在原始图像超过某个像素大小并最终裁剪结果时适用

所以流程是 1.如果源图像高于80像素或宽于300像素,则继续 2.将源图像按比例缩放到80像素高 3.如果新宽度超过300像素,则从左边缘开始将图像裁剪为300像素 4.将图像保存到自身

我用于缩放的php是

<?php
$org_info = getimagesize("test.jpg");
$rsr_org = imagecreatefromjpeg("test.jpg");
$rsr_scl = imagescale($rsr_org, 320, 80,  IMG_BICUBIC_FIXED);
imagejpeg($rsr_scl, "test.jpg");
imagedestroy($rsr_org);
imagedestroy($rsr_scl);
?>

感谢任何帮助,谢谢

1 个答案:

答案 0 :(得分:0)

您可以使用getimagesize(http://php.net/manual/en/function.getimagesize.php)在php中获取图片大小。

图像复制以使用新尺寸(http://php.net/manual/fr/function.imagecopyresized.php)调整图像大小。

$size = getimagesize($filename);
// $size[0] is width
// $size[1] is height

$thumb = imagecreatetruecolor($newwidth, $newheight);
$source = imagecreatefromjpeg($filename);
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);