调取方法:$this->reSizeImg($coverAbsolutePath,$fileUrl,'480','480');
/**
$imgSrc:图片地址
$fileUrl :存储路径
**/
static public function reSizeImg($imgSrc,$fileUrl, $resize_width, $resize_height, $isCut = false)
{
//图片的类型
$type = substr(strrchr($imgSrc, "."), 1);
//初始化图象
if ($type == "jpg") {
$im = imagecreatefromjpeg($imgSrc);
}
if ($type == "gif") {
$im = imagecreatefromgif($imgSrc);
}
if ($type == "png") {
$im = imagecreatefrompng($imgSrc);
}
//目标图象地址
$full_length = strlen($imgSrc);
$type_length = strlen($type);
$name_length = $full_length - $type_length;
$name = substr($imgSrc, 0, $name_length - 1);
$dstimg = $fileUrl;
$width = imagesx($im);
$height = imagesy($im);
//生成图象
//改变后的图象的比例
$resize_ratio = ($resize_width) / ($resize_height);
//实际图象的比例
$ratio = ($width) / ($height);
if (($isCut) == 1) { //裁图
if ($ratio >= $resize_ratio) { //高度优先
$newimg = imagecreatetruecolor($resize_width, $resize_height);
imagecopyresampled($newimg, $im, 0, 0, 0, 0, $resize_width, $resize_height, (($height) * $resize_ratio), $height);
ImageJpeg($newimg, $dstimg);
}
if ($ratio < $resize_ratio) { //宽度优先
$newimg = imagecreatetruecolor($resize_width, $resize_height);
imagecopyresampled($newimg, $im, 0, 0, 0, 0, $resize_width, $resize_height, $width, (($width) / $resize_ratio));
ImageJpeg($newimg, $dstimg);
}
} else { //不裁图
if ($ratio >= $resize_ratio) {
$newimg = imagecreatetruecolor($resize_width, ($resize_width) / $ratio);
imagecopyresampled($newimg, $im, 0, 0, 0, 0, $resize_width, ($resize_width) / $ratio, $width, $height);
ImageJpeg($newimg, $dstimg);
}
if ($ratio < $resize_ratio) {
$newimg = imagecreatetruecolor(($resize_height) * $ratio, $resize_height);
imagecopyresampled($newimg, $im, 0, 0, 0, 0, ($resize_height) * $ratio, $resize_height, $width, $height);
ImageJpeg($newimg, $dstimg);
}
}
ImageDestroy($im);
}
备注:内容均来自网络,学习使用,不进行商业用途。
邮箱:suihongxiao@yeah.net
网友评论