PHP制作缩略(裁剪)图片核心实现步骤:
//要裁剪的对象 $imgpath = './img/1.jpg'; $img = imagecreatefromjpeg($imgpath); list($oldWidth,$oldHeight) = getimagesize($imgpath); //类似与ES6的解构赋值 //随机0.1~1倍数 $arr = array(0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1); $scale = $arr[rand(0,10)]; $newWidth = ceil($scale*$oldWidth); $newHeight = ceil($scale*$oldHeight); //裁剪完要生成的对象 $image = imagecreatetruecolor($newWidth,$newHeight); //生成缩略图片 imagecopyresampled($image,$img,0,0,0,0,$newWidth,$newHeight,$oldWidth,$oldHeight); //渲染导出缩略图片 $str = md5(uniqid(microtime(true),true)).'.jpg'; imagejpeg($image,$str); imagedestroy($image);
核心方法:imagecopyresampled(参数...)
bool imagecopyresampled ( resource $dst_image , resource $src_image , int $dst_x , int $dst_y , int $src_x , int $src_y , int $dst_w , int $dst_h ,int $src_w , int $src_h )
$dst_image:新建的图片
$src_image:需要载入的图片
$dst_x:设定需要载入的图片在新图中的x坐标
$dst_y:设定需要载入的图片在新图中的y坐标
$src_x:设定载入图片要载入的区域x坐标
$src_y:设定载入图片要载入的区域y坐标
$dst_w:设定载入的原图的宽度(在此设置缩放)
$dst_h:设定载入的原图的高度(在此设置缩放)
$src_w:原图要载入的宽度
$src_h:原图要载入的高度
$src_image:需要载入的图片
$dst_x:设定需要载入的图片在新图中的x坐标
$dst_y:设定需要载入的图片在新图中的y坐标
$src_x:设定载入图片要载入的区域x坐标
$src_y:设定载入图片要载入的区域y坐标
$dst_w:设定载入的原图的宽度(在此设置缩放)
$dst_h:设定载入的原图的高度(在此设置缩放)
$src_w:原图要载入的宽度
$src_h:原图要载入的高度