Heim  >  Artikel  >  Backend-Entwicklung  >  php生成缩略图的代码(兼容性好)

php生成缩略图的代码(兼容性好)

WBOY
WBOYOriginal
2016-07-25 09:11:43786Durchsuche

PHP生成缩略图的代码很多,不过能完全兼容gd1.6和gd2.x,并能保证缩图清晰性的代码几乎没有,以下代码可以实现较好的兼容性。 分享出来,供大家学习参考。

  1. function ImageResize($srcFile,$toW,$toH,$toFile="")
  2. {
  3. if($toFile==""){ $toFile = $srcFile; }
  4. $info = "";
  5. $data = GetImageSize($srcFile,$info);
  6. switch ($data[2])
  7. {
  8. case 1:
  9. if(!function_exists("imagecreatefromgif")){
  10. echo "你的GD库不能使用GIF格式的图片,请使用Jpeg或PNG格式!返回";
  11. exit();
  12. }
  13. $im = ImageCreateFromGIF($srcFile);
  14. break;
  15. case 2:
  16. if(!function_exists("imagecreatefromjpeg")){
  17. echo "你的GD库不能使用jpeg格式的图片,请使用其它格式的图片!返回";
  18. exit();
  19. }
  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. $toWH=$toW/$toH;
  29. $srcWH=$srcW/$srcH;
  30. if($toWH $ftoW=$toW;
  31. $ftoH=$ftoW*($srcH/$srcW);
  32. }
  33. else{
  34. $ftoH=$toH;
  35. $ftoW=$ftoH*($srcW/$srcH);
  36. }
  37. if($srcW>$toW||$srcH>$toH)
  38. {
  39. if(function_exists("imagecreatetruecolor")){
  40. @$ni = ImageCreateTrueColor($ftoW,$ftoH);
  41. if($ni) ImageCopyResampled($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH);
  42. else{
  43. $ni=ImageCreate($ftoW,$ftoH);
  44. ImageCopyResized($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH);
  45. }
  46. }else{
  47. $ni=ImageCreate($ftoW,$ftoH);
  48. ImageCopyResized($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH);
  49. }
  50. if(function_exists('imagejpeg')) ImageJpeg($ni,$toFile);
  51. else ImagePNG($ni,$toFile);
  52. ImageDestroy($ni);
  53. }
  54. ImageDestroy($im);
  55. }
复制代码


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
Vorheriger Artikel:数据库连接操作类 Nächster Artikel:php的辅助函数功能