欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php图片缩放函数:根据宽度等比缩放图片

程序员文章站 2022-05-23 16:40:00
...
  1. /*

  2. 限定图片宽度等比缩放图片的简单函数,程序不覆盖图片原图。
  3. 图片等比缩放函数参数说明:
  4. $imgsrc 原图片地址可以是远程图片也可以是服务器上的路径。
  5. $newimgname 缩小后图片的名称
  6. $kuan 限定图片的宽度,如果超过这个宽度图片才进行缩小操作。
  7. 举例:

  8. $imgsrc = "http://www.xingzuo51.com/upload/20141116/20141116010041-0.jpg";//可以是远程图片。
  9. $newimgname = "upload/20141116/000.jpg"; //本地路径前面不要加“/”
  10. $kuan = 600;
  11. img_suofang($imgsrc,$newimgname,$kuan); //调用图片缩小函数
  12. */
  13. function img_suofang($imgsrc,$newimgname,$kuan){
  14. $info = getimagesize($imgsrc); //取得图片信息
  15. list($w,$h) = $info;
  16. $bl = ($h/$w);
  17. // print_r($info);
  18. // die();
  19. // $type = $info[2];
  20. // die($type);
  21. if($w>$kuan){
  22. $k = $kuan;
  23. $g = ($k*$bl);
  24. switch($info[2]){
  25. case 1:
  26. $im = imagecreatefromgif($imgsrc);
  27. $n = imagecreatetruecolor($k,$g);
  28. imagecopyresampled($n,$im,0,0,0,0,$k,$g,$w,$h);
  29. $type = ".gif";
  30. imagegif($n,$newimgname."$type");
  31. break;
  32. case 2:
  33. $im = imagecreatefromjpeg($imgsrc);
  34. $n = imagecreatetruecolor($k,$g);
  35. imagecopyresampled($n,$im,0,0,0,0,$k,$g,$w,$h);
  36. $type = ".jpg";
  37. imagejpeg($n,$newimgname.$type);
  38. break;
  39. case 3:
  40. $im = imagecreatefrompng($imgsrc);
  41. $n = imagecreatetruecolor($k,$g);
  42. imagecopyresampled($n,$im,0,0,0,0,$k,$g,$w,$h);
  43. $type = ".png";
  44. imagepng($n,$newimgname.$type);
  45. break;
  46. default:
  47. die("No jpg Image");
  48. break;
  49. }
  50. if ($im && $n) {

  51. echo "生成缩略图成功.
    php图片缩放函数:根据宽度等比缩放图片";
  52. }else{
  53. echo "生成缩略图失败。";
  54. }
  55. imagedestroy( $im );
  56. imagedestroy( $n );
  57. }else{
  58. echo "图片未超过指定宽度,无需进行缩放。";
  59. }
  60. }
复制代码