等比例缩放就好了 上传成功后,可以使用php原生的GD库(扩者框架里写好的方法)
GD库方法:
这里是以前写的封装成的函数
主要逻辑在 : 计算缩放后的图片尺寸
*形参列表:picname:图片文件名称
-
-
maxWidth 图片被缩放后的最大宽度
-
maxHeight 图片被缩放后的最大高度
-
pre 缩放后的图片名前缀,默认为"s_" 根据需要改
*返回值:布尔值表示成功与否。
-
function imageResize($picname,$path,$maxWidth,$maxHeight,$pre="s_"){ $path = rtrim($path,"/")."/"; //1获取被缩放的图片信息 $info = getimagesize($path.$picname); //获取图片的宽和高 $width = $info[0]; $height = $info[1]; //2根据图片类型,使用对应的函数创建画布源。 switch($info[2]){ case 1: //gif格式 $srcim = imagecreatefromgif($path.$picname); break; case 2: //jpeg格式 $srcim = imagecreatefromjpeg($path.$picname); break; case 3: //png格式 $srcim = imagecreatefrompng($path.$picname); break; default: return false; //die("无效的图片格式"); break; } //3. 计算缩放后的图片尺寸 if($maxWidth/$width<$maxHeight/$height){ $w = $maxWidth; $h = ($maxWidth/$width)*$height; }else{ $w = ($maxHeight/$height)*$width; $h = $maxHeight; } //4. 创建目标画布 $dstim = imagecreatetruecolor($w,$h); //5. 开始绘画(进行图片缩放) imagecopyresampled($dstim,$srcim,0,0,0,0,$w,$h,$width,$height); //6. 输出图像另存为 switch($info[2]){ case 1: //gif格式 imagegif($dstim,$path.$pre.$picname); break; case 2: //jpeg格式 imagejpeg($dstim,$path.$pre.$picname); break; case 3: //png格式 imagepng($dstim,$path.$pre.$picname); break; } //7. 释放资源 imagedestroy($dstim); imagedestroy($srcim); return true; }
援引:https://segmentfault.com/q/1010000008921318