php大图生成小图代码

这是一款利用php自带的功能把指定的大图生成我们指定大小的缩略图代码,使用方便简单,只要把设置下面四个参数就可以生成自己想的大小的缩略图了,代码如下:

  1. function bigtosmallimg($file,$path,$w=120,$h=90)
  2. {
  3. $img=$path.$file;
  4. $imgarr=getimagesize($img);
  5. $sw=$imgarr[0];//原图宽
  6. $sh=$imgarr[1];//原图高
  7. $stype=$imgarr[2];
  8. //按比例缩放
  9. if($sw/$sh>$w/$h){
  10. $mw=$w;
  11. $mh=(int)$sh*($w/$sw);
  12. }
  13. else{
  14. $mw=(int)$sw*($h/$sh);
  15. $mh=$h;
  16. }
  17. switch($stype){//根据上传好的图形文件类型新建一个用来生成缩略图的源文件。
  18. case 1:
  19. $srcf = imagecreatefromgif($img);
  20. break;
  21. case 2:
  22. $srcf = imagecreatefromjpeg($img);
  23. break;
  24. case 3:
  25. $srcf = imagecreatefrompng($img);
  26. break;
  27. default:
  28. showmsg('程序调用错误。');
  29. break;
  30. }
  31. $desf =imagecreatetruecolor($mw,$mh);
  32. imagecopyresampled($desf,$srcf,0,0,0,0,$mw,$mh,$sw,$sh);
  33. $sm_name=$path."s_".$file;
  34. switch($stype){
  35. case 1:
  36. imagegif($desf,$sm_name);
  37. break;
  38. case 2:
  39. imagejpeg($desf,$sm_name);
  40. break;
  41. case 3:
  42. imagepng($desf,$sm_name);
  43. break;
  44. default:
  45. showmsg('无法生成www.phpfensi.com' . $stype . '的缩略图。');
  46. break;
  47. }
  48. imagedestroy($desf);
  49. imagedestroy($srcf);
  50. }
  51. //开源代码phpfensi.com
  52. //此缩略图调用方法,代码如下:
  53. bigtosmallimg($file,$path,$w=120,$h=90);
  54. /*
  55. $file = 图片的路径
  56. $path = 生成后保存的路径
  57. $w =图片宽度
  58. $h =图片高度
  59. */