Heim  >  Artikel  >  Backend-Entwicklung  >  PHP等比例缩放图片生成缩略图函数的例子

PHP等比例缩放图片生成缩略图函数的例子

WBOY
WBOYOriginal
2016-07-25 08:53:18851Durchsuche
  1. /*
  2. *@im //需要缩放的图片资源
  3. *@filetype //制作的缩略图文件类型
  4. *@dstimW //缩放的图片的宽度
  5. *@dstimH //缩放的图片的高度
  6. *@thumbname //缩略图文件名字
  7. // WWW.JBXUE.COM
  8. function makethumb($im,$dstimW,$dstimH,$thumbname ,$filetype){
  9. //获取im的宽度和高度
  10. $pic_W=imagesx($im);
  11. $pic_H=imagesy($im);
  12. $arr = array();
  13. swith($filetype){
  14. case 'jpg':
  15. $arr[$filetype]="imagejpeg";
  16. break;
  17. case 'png';
  18. $arr[$filetype]="imagepng";
  19. break;
  20. case 'jif';
  21. $arr[$filetype]="imagegif";
  22. }
  23. if(($dstimgW && $dstimgWif($dstimgW && $dstimgW$dsimgWratio = $dstimgW / $pic_w;
  24. $resizereagW =true;
  25. }
  26. if($dstimgH && $ $dstimgH $dsimgHratio = $dstimgH/$pic_H;
  27. $resizerreagH =true;
  28. }
  29. //缩略图宽高和原图宽高比,取最小的那个
  30. if($resizereagW && $resizerreagH){
  31. if($dsimgWratio$radio = $dsimgWratio;
  32. else
  33. $radio = $dsimgHratio;
  34. }
  35. if($resizereagW && !$resizerreagH ){
  36. $radio = $dsimgWratio;
  37. }
  38. if(!$resizereagW && $resizerreagH){
  39. $radio = $dsimgHratio ;
  40. }
  41. $imgnewW = $pic_W * $radio;
  42. $imgnewH = $pic_H * $radio;
  43. if(function_exists("imgcopyresampled")){
  44. //创建目标资源画布
  45. $dst = imagecreatetruecolor ($imgnewW, $imgnewH);
  46. imagecopyresampled ($dst,$im,0,0,0,0,$imgnewW,$imgnewH,$pic_W,$pic_H);
  47. }else{
  48. $dst=imagecreate($imgnewW, $imgnewH);
  49. imagecopyresized ($dst, $im,0,0,0,0,$imgnewW,$imgnewH,$imgnewH,$pic_W,$pic_H);
  50. }
  51. $arr[$filetype]($dst,$thumbname.".$filetype");
  52. imagedestroy ($dst);
  53. }else{//缩略图自身的宽和高已经大于了原图的宽和高
  54. //则缩略图的宽和缩略的高就是原图的宽和原图的高
  55. $arr[$filetype]($im,$thumbname.".$filetype");
  56. imagedestroy();
  57. }
  58. }
  59. ?>
复制代码


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn