php裁切图片方法示例

php裁剪图片指定区域代码示例
原图图片:
点击在新窗口中浏览此图片
其中虚线框中是我们需要裁切保存的图片。

  1. $src = 'www.fity.cn.jpg';  
  2. //创建源图的实例  
  3. $file = imagecreatefromstring(file_get_contents($src));  
  4.    
  5. //裁剪开区域左上角的点的坐标  
  6. $x = 90;  
  7. $y = 40;  
  8. //裁剪区域的宽和高  
  9. $width = 180;  
  10. $height = 110;  
  11. //最终保存成图片的宽和高,和源要等比例,否则会变形  
  12. $final_width = 120;  
  13. $final_height = round($final_width * $height / $width);  
  14.    
  15. //将裁剪区域复制到新图片上,并根据源和目标的宽高进行缩放或者拉升  
  16. $new_image = imagecreatetruecolor($final_width$final_height);  
  17. imagecopyresampled($new_image$file, 0, 0, $x$y$final_width$final_height$width$height);  
  18.    
  19. //输出图片  
  20. header('Content-Type: image/jpeg');  
  21. imagejpeg($new_image);  
  22.    
  23. imagedestroy($file);  
  24. imagedestroy($new_image);  

输出图片:
点击在新窗口中浏览此图片
PS:
1.关于函数imagecopyresampled说明:

  1. 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 )  
  2. $dst_image:新建的图片  
  3. $src_image:需要载入的图片  
  4. $dst_x:设定需要载入的图片在新图中的x坐标  
  5. $dst_y:设定需要载入的图片在新图中的y坐标  
  6. $src_x:设定载入图片要载入的区域x坐标  
  7. $src_y:设定载入图片要载入的区域y坐标  
  8. $dst_w:设定载入的原图的宽度(在此设置缩放)  
  9. $dst_h:设定载入的原图的高度(在此设置缩放)  
  10. $src_w:原图要载入的宽度  
  11. $src_h:原图要载入的高度  

2.如果坐标为(0,0),裁剪区域的宽高和源图的宽高一致,那么就是生成缩略图的功能了。
3.这里后端PHP裁切,如果是前端裁切推荐:imageAreaSelect、Cropper,兼容性不错。

相关文章

此处评论已关闭