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

2014年12月01日 01:28 by:老修--走失的镜头盖
  1. /* 
  2. 限定图片宽度等比缩放图片的简单函数,程序不覆盖图片原图。
  3. ******************【老修】发布,如果有疑问请访问www.lao8.org并留言*********************
  4. 图片等比缩放函数参数说明:
  5. $imgsrc 原图片地址可以是远程图片也可以是服务器上的路径。
  6. $newimgname 缩小后图片的名称
  7. $kuan 限定图片的宽度,如果超过这个宽度图片才进行缩小操作。
  8. 使用方法举例:
  9. $imgsrc = "http://www.fansart.com/upload/20141116/20141116010041-0.jpg";//可以是远程图片。
  10. $newimgname = "upload/20141116/000.jpg";//本地路径前面不要加“/”
  11. $kuan = 600;
  12. img_suofang($imgsrc,$newimgname,$kuan);//调用图片缩小函数
  13.  */
  14. function img_suofang($imgsrc,$newimgname,$kuan){
  15. $info = getimagesize($imgsrc); //取得图片信息
  16. list($w,$h) = $info;
  17. $bl = ($h/$w);
  18. // print_r($info);
  19. // die();
  20. // $type = $info[2];
  21. // die($type);
  22. if($w>$kuan){
  23. $k = $kuan;
  24. $g = ($k*$bl);
  25. switch($info[2]){
  26. case 1:
  27. $im = imagecreatefromgif($imgsrc);
  28. $n = imagecreatetruecolor($k,$g);
  29. imagecopyresampled($n,$im,0,0,0,0,$k,$g,$w,$h);
  30. $type = ".gif";
  31. imagegif($n,$newimgname."$type");
  32. break;
  33. case 2:
  34. $im = imagecreatefromjpeg($imgsrc);
  35. $n = imagecreatetruecolor($k,$g);
  36. imagecopyresampled($n,$im,0,0,0,0,$k,$g,$w,$h);
  37. $type = ".jpg";
  38. imagejpeg($n,$newimgname.$type);
  39. break;
  40. case 3:
  41. $im = imagecreatefrompng($imgsrc);
  42. $n = imagecreatetruecolor($k,$g);
  43. imagecopyresampled($n,$im,0,0,0,0,$k,$g,$w,$h);
  44. $type = ".png";
  45. imagepng($n,$newimgname.$type);
  46. break;
  47. default:
  48. die("No jpg Image");
  49. break;
  50. }


  51. if ($im && $n) {
  52. echo "生成缩略图成功.<br><img src="".$newimgname.$type."?i=".date("s")."">";
  53. }else{
  54. echo "生成缩略图失败。";
  55. }
  56. imagedestroy( $im );
  57. imagedestroy( $n );
  58. }else{
  59. echo "图片未超过指定宽度,无需进行缩放。";
  60. }


  61. }
标签:php 图片缩放