当前位置:Gxlcms > PHP教程 > php图片缩放函数:根据宽度等比缩放图片

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

时间:2021-07-01 10:21:17 帮助过:22人阅读

  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 "生成缩略图成功.
    ";
  52. }else{
  53. echo "生成缩略图失败。";
  54. }
  55. imagedestroy( $im );
  56. imagedestroy( $n );
  57. }else{
  58. echo "图片未超过指定宽度,无需进行缩放。";
  59. }
  60. }

人气教程排行