兼容性比较好的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 相关文章推荐
php权重计算方法代码分享
Jan 09 PHP
ThinkPHP访问不存在的模块跳转到404页面的方法
Jun 19 PHP
php版本的cron定时任务执行器使用实例
Aug 19 PHP
PHP中使用Imagick操作PSD文件实例
Jan 26 PHP
Yii控制器中操作视图js的方法
Jul 04 PHP
Yii2框架实现注册和登录教程
Sep 30 PHP
form自动提交实例讲解
Jul 10 PHP
LaravelS通过Swoole加速Laravel/Lumen详解
Mar 02 PHP
详解PHP发送邮件知识点
May 06 PHP
PHP7新特性之抽象语法树(AST)带来的变化详解
Jul 17 PHP
PHP连续签到功能实现方法详解
Dec 04 PHP
PHP设计模式之命令模式示例详解
Dec 20 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代码
2012/09/14 PHP
PHP中数据库单例模式的实现代码分享
2014/08/21 PHP
详解PHP防止直接访问.php 文件的实现方法
2017/07/28 PHP
PHP+redis实现的购物车单例类示例
2019/02/02 PHP
js 分栏效果实现代码
2009/08/29 Javascript
JavaScript在IE和Firefox(火狐)的不兼容问题解决方法小结
2010/04/13 Javascript
jquery关于图形报表的运用实现代码
2011/01/06 Javascript
获得所有表单值的JQuery实现代码[IE暂不支持]
2012/05/24 Javascript
jQuery实现的在线答题功能
2015/04/12 Javascript
JavaScript监听文本框回车事件并过滤文本框空格的方法
2015/04/16 Javascript
JavaScript实现的简单幂函数实例
2015/04/17 Javascript
原生javascript 学习之js变量全面了解
2016/07/14 Javascript
Vue.js实战之通过监听滚动事件实现动态锚点
2017/04/04 Javascript
获取当前按钮或者html的ID名称实例(推荐)
2017/06/23 Javascript
jQuery UI Draggable + Sortable 结合使用(实例讲解)
2017/09/07 jQuery
快速搭建React的环境步骤详解
2017/11/06 Javascript
详解vue静态资源打包中的坑与解决方案
2018/02/05 Javascript
关闭Vue计算属性自带的缓存功能方法
2018/03/02 Javascript
常用的 JS 排序算法 整理版
2018/04/05 Javascript
Vue resource三种请求格式和万能测试地址
2018/09/26 Javascript
解决layui使用layui-icon出现默认图标的问题
2019/09/11 Javascript
JavaScript Window窗口对象属性和使用方法
2020/01/19 Javascript
Vue实现跑马灯效果
2020/05/25 Javascript
vue npm install 安装某个指定的版本操作
2020/08/11 Javascript
Python发送email的3种方法
2015/04/28 Python
Python3实现从指定路径查找文件的方法
2015/05/22 Python
python3中dict(字典)的使用方法示例
2017/03/22 Python
TensorFlow变量管理详解
2018/03/10 Python
pandas按照列的值排序(某一列或者多列)
2020/12/13 Python
借助HTML5 Canvas来绘制三角形和矩形等多边形的方法
2016/03/14 HTML / CSS
会计电算化专业自荐信
2014/03/15 职场文书
幼儿园安全生产月活动总结
2014/07/05 职场文书
飞机制造技术专业求职信
2014/07/27 职场文书
工会优秀工作者事迹
2014/08/17 职场文书
医院党的群众路线教育实践活动学习心得体会
2014/10/30 职场文书
Winsows11性能如何? win11性能测评多核竟比Win10差了10%
2021/11/21 数码科技