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

一个创建图片缩略图的函数

程序员文章站 2022-04-23 21:41:25
...
  1. /**

  2. * 创建图片缩略图,成功返回真
  3. *
  4. * @param string $cat 目录
  5. * @param string $oldname 原图文件名
  6. * @param string $newname 新图文件名
  7. * @param int $width 缩略图宽
  8. * @param int $height 缩略图高
  9. * @return
  10. */
  11. function thumb($cat,$oldname,$newname,$width=160,$height=120){
  12. $srcFile = $cat. "/" .$oldname;
  13. $data = getimagesize($srcFile);
  14. $dscFile = $cat. "/". $newname;
  15. switch ($data[2]) {

  16. case 1:
  17. $im = imagecreatefromgif($srcFile);
  18. break;
  19. case 2:

  20. $im = imagecreatefromjpeg($srcFile);
  21. break;
  22. case 3:

  23. $im = imagecreatefrompng($srcFile);
  24. break;
  25. }
  26. $srcW=imagesx($im);

  27. $srcH=imagesy($im);
  28. if(($srcW/$width)>=($srcH/$height)){

  29. $temp_height=$height;
  30. $temp_width=$srcW/($srcH/$height);
  31. $src_X=abs(($width-$temp_width)/2);
  32. $src_Y=0;
  33. }
  34. else{
  35. $temp_width=$width;
  36. $temp_height=$srcH/($srcW/$width);
  37. $src_X=0;
  38. $src_Y=abs(($height-$temp_height)/2);
  39. }
  40. $temp_img=imagecreatetruecolor($temp_width,$temp_height);

  41. imagecopyresized($temp_img,$im,0,0,0,0,$temp_width,$temp_height,$srcW,$srcH);
  42. $ni=imagecreatetruecolor($width,$height);

  43. imagecopyresized($ni,$temp_img,0,0,$src_X,$src_Y,$width,$height,$width,$height);
  44. $cr = imagejpeg($ni,$dscFile);
  45. if ($cr){

  46. chmod($dscFile, 0777);
  47. return true;
  48. }
  49. }
  50. ?>
复制代码