兼容性比较好的PHP生成缩略图的代码


Posted in PHP onJanuary 12, 2011
function ImageResize($srcFile,$toW,$toH,$toFile="") 
{ 
if($toFile==""){ $toFile = $srcFile; } 
$info = ""; 
$data = GetImageSize($srcFile,$info); 
switch ($data[2]) 
{ 
case 1: 
if(!function_exists("imagecreatefromgif")){ 
echo "你的GD库不能使用GIF格式的图片,请使用Jpeg或PNG格式!<a href='javascript:go(-1);'>返回</a>"; 
exit(); 
} 
$im = ImageCreateFromGIF($srcFile); 
break; 
case 2: 
if(!function_exists("imagecreatefromjpeg")){ 
echo "你的GD库不能使用jpeg格式的图片,请使用其它格式的图片!<a href='javascript:go(-1);'>返回</a>"; 
exit(); 
} 
$im = ImageCreateFromJpeg($srcFile); 
break; 
case 3: 
$im = ImageCreateFromPNG($srcFile); 
break; 
} 
$srcW=ImageSX($im); 
$srcH=ImageSY($im); 
$toWH=$toW/$toH; 
$srcWH=$srcW/$srcH; 
if($toWH<=$srcWH){ 
$ftoW=$toW; 
$ftoH=$ftoW*($srcH/$srcW); 
} 
else{ 
$ftoH=$toH; 
$ftoW=$ftoH*($srcW/$srcH); 
} 
if($srcW>$toW||$srcH>$toH) 
{ 
if(function_exists("imagecreatetruecolor")){ 
@$ni = ImageCreateTrueColor($ftoW,$ftoH); 
if($ni) ImageCopyResampled($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH); 
else{ 
$ni=ImageCreate($ftoW,$ftoH); 
ImageCopyResized($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH); 
} 
}else{ 
$ni=ImageCreate($ftoW,$ftoH); 
ImageCopyResized($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH); 
} 
if(function_exists('imagejpeg')) ImageJpeg($ni,$toFile); 
else ImagePNG($ni,$toFile); 
ImageDestroy($ni); 
} 
ImageDestroy($im); 
}
PHP 相关文章推荐
使用 eAccelerator加速PHP代码的方法
Sep 30 PHP
php cache类代码(php数据缓存类)
Apr 15 PHP
openPNE常用方法分享
Nov 29 PHP
discuz免激活同步登入代码修改方法(discuz同步登录)
Dec 24 PHP
php+js iframe实现上传头像界面无跳转
Apr 29 PHP
ThinkPHP采用原生query实现关联查询left join实例
Dec 02 PHP
PHP实现的简易版图片相似度比较
Jan 07 PHP
ECshop 迁移到 PHP7版本时遇到的兼容性问题
Feb 15 PHP
总结PHP如何获取当前主机、域名、网址、路径、端口和参数等
Sep 09 PHP
PHP设计模式之观察者模式定义与用法示例
Aug 04 PHP
phpMyAdmin通过密码漏洞留后门文件
Nov 20 PHP
PhpStorm2020 + phpstudyV8 +XDebug的教程详解
Sep 17 PHP
php的日期处理函数及uchome的function_coomon中日期处理函数的研究
Jan 12 #PHP
PHP日期处理函数 整型日期格式
Jan 12 #PHP
Base64在线编码解码实现代码 演示与下载
Jan 08 #PHP
DEDE采集大师官方留后门的删除办法
Jan 08 #PHP
php !function_exists(&quot;T7FC56270E7A70FA81A5935B72EACBE29&quot;))代码解密
Jan 07 #PHP
PHP备份/还原MySQL数据库的代码
Jan 06 #PHP
php循环检测目录是否存在并创建(循环创建目录)
Jan 06 #PHP
You might like
php文件打包 下载之使用PHP自带的ZipArchive压缩文件并下载打包好的文件
2012/06/13 PHP
php常用Stream函数集介绍
2013/06/24 PHP
PHP改进计算字符串相似度的函数similar_text()、levenshtein()
2014/10/27 PHP
静态页面的值传递(三部曲)
2006/09/25 Javascript
提高网站性能之 如何对待JavaScript
2009/10/31 Javascript
Jquery 的扩展方法总结
2011/10/01 Javascript
将list转换为json失败的原因
2013/12/17 Javascript
nodejs之请求路由概述
2014/07/05 NodeJs
jQuery 选择器详解
2015/01/19 Javascript
JS+CSS实现感应鼠标渐变显示DIV层的方法
2015/02/20 Javascript
Js+php实现异步拖拽上传文件
2015/06/23 Javascript
详谈javascript异步编程
2016/02/21 Javascript
Bootstrap教程JS插件滚动监听学习笔记分享
2016/05/18 Javascript
JS中的三个循环小结
2017/06/20 Javascript
Vue中建立全局引用或者全局命令的方法
2017/08/21 Javascript
vue解决一个方法同时发送多个请求的问题
2018/09/25 Javascript
微信小程序 swiper 组件遇到的问题及解决方法
2019/05/26 Javascript
vue中实现动态生成二维码的方法
2020/02/21 Javascript
[01:03:27]NAVI vs EG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
python新手经常遇到的17个错误分析
2014/07/30 Python
Python随机生成均匀分布在三角形内或者任意多边形内的点
2017/12/14 Python
Python读写/追加excel文件Demo分享
2018/05/03 Python
根据DataFrame某一列的值来选择具体的某一行方法
2018/07/03 Python
pandas.DataFrame选取/排除特定行的方法
2018/07/03 Python
flask应用部署到服务器的方法
2019/07/12 Python
python线程中的同步问题及解决方法
2019/08/29 Python
基于python tkinter的点名小程序功能的实例代码
2020/08/22 Python
关于多种方式完美解决Python pip命令下载第三方库的问题
2020/12/21 Python
岗位职责的定义
2013/11/10 职场文书
团队精神口号
2014/06/06 职场文书
小组名称和口号
2014/06/09 职场文书
创建绿色学校先进个人材料
2014/08/20 职场文书
关于读书的演讲稿300字
2014/08/27 职场文书
户籍证明模板
2014/09/28 职场文书
法院干警四风问题自我剖析材料
2014/09/29 职场文书
Html5大屏数据可视化开发的实现
2021/06/11 HTML / CSS