查看: 5260|回复: 0
打印 上一主题 下一主题

兼容性最强的PHP生成缩略图的代码

[复制链接]
跳转到指定楼层
1#
发表于 2007-10-4 20:17:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
台州网址导航
写通用性程序考虑兼容性是很头痛的事情,关于用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<=$srcWH){
  31.     $ftoW=$toW;
  32.     $ftoH=$ftoW*($srcH/$srcW);
  33. }
  34. else{
  35.     $ftoH=$toH;
  36.     $ftoW=$ftoH*($srcW/$srcH);
  37. }   
  38. if($srcW>$toW||$srcH>$toH)
  39. {
  40.   if(function_exists("imagecreatetruecolor")){
  41.     @$ni = ImageCreateTrueColor($ftoW,$ftoH);
  42.     if($ni) ImageCopyResampled($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH);
  43.     else{
  44.       $ni=ImageCreate($ftoW,$ftoH);
  45.       ImageCopyResized($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH);
  46.     }
  47.   }else{
  48.     $ni=ImageCreate($ftoW,$ftoH);
  49.     ImageCopyResized($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH);
  50.   }
  51.   if(function_exists('imagejpeg')) ImageJpeg($ni,$toFile);
  52.   else ImagePNG($ni,$toFile);
  53.   ImageDestroy($ni);
  54. }
  55. ImageDestroy($im);
复制代码
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖
台州维博网络(www.tzweb.com)专门运用PHP+MYSQL/ASP.NET+MSSQL技术开发网站门户平台系统等。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

网站推广
关于我们
  • 台州朗动科技(Tzweb.com)拥有多年开发网站平台系统门户手机客户端等业务的成功经验。主要从事:政企网站,系统平台,微信公众号,各类小程序,手机APP客户端,浙里办微应用,浙政钉微应用、主机域名、虚拟空间、后期维护等服务,满足不同企业公司的需求,是台州地区领先的网络技术服务商!

Hi,扫描关注我

Copyright © 2005-2026 站长论坛 All rights reserved

Powered by 站长论坛 with TZWEB Update Techonolgy Support

快速回复 返回顶部 返回列表