PHP图片等比例缩放生成缩略图函数分享


Posted in PHP onJune 10, 2014
<?php
    /*
    *@im     //需要缩放的图片资源
    *@filetype //制作的缩略图文件类型
    *@dstimW   //缩放的图片的宽度
    *@dstimH  //缩放的图片的高度
    *@thumbname //缩略图文件名字
function makethumb($im,$dstimW,$dstimH,$thumbname ,$filetype){
            //获取im的宽度和高度
        $pic_W=imagesx($im);
        $pic_H=imagesy($im);
        $arr = array();
            swith($filetype){
                case 'jpg':
                        $arr[$filetype]="imagejpeg";
                        break;
                case 'png';
                        $arr[$filetype]="imagepng";
                        break;
                case 'jif';
                        $arr[$filetype]="imagegif";
                }
        if(($dstimgW && $dstimgW<$pic_W) || ($dstimgH && $dstimgH<$pic_H) ){
                if($dstimgW && $dstimgW<$pic_W){
                    $dsimgWratio = $dstimgW / $pic_w;
                    $resizereagW =true;
                }
                if($dstimgH && $ $dstimgH <$pic_H){
                    $dsimgHratio = $dstimgH/$pic_H;
                    $resizerreagH =true;
                }
                //缩略图宽高和原图宽高比,取最小的那个
                if($resizereagW && $resizerreagH){
                    if($dsimgWratio<$dsimgHratio)
                        $radio = $dsimgWratio;
                    else
                        $radio = $dsimgHratio;      
                }
                if($resizereagW && !$resizerreagH ){
                        $radio = $dsimgWratio;
                }
                if(!$resizereagW && $resizerreagH){
                       $radio = $dsimgHratio ;
                }
                $imgnewW = $pic_W * $radio;
                $imgnewH = $pic_H * $radio;
                if(function_exists("imgcopyresampled")){
                      //创建目标资源画布
                    $dst = imagecreatetruecolor ($imgnewW, $imgnewH);
                    imagecopyresampled ($dst,$im,0,0,0,0,$imgnewW,$imgnewH,$pic_W,$pic_H);
                }else{
             $dst=imagecreate($imgnewW, $imgnewH);
             imagecopyresized ($dst, $im,0,0,0,0,$imgnewW,$imgnewH,$imgnewH,$pic_W,$pic_H);
                }
        $arr[$filetype]($dst,$thumbname.".$filetype");
        imagedestroy ($dst);
    }else{//缩略图自身的宽和高已经大于了原图的宽和高
           //则缩略图的宽和缩略的高就是原图的宽和原图的高
         $arr[$filetype]($im,$thumbname.".$filetype");
         imagedestroy();
    }
}
?>
PHP 相关文章推荐
PHP开发文件系统实例讲解
Oct 09 PHP
php正则校验用户名介绍
Jul 19 PHP
php中将地址生成迅雷快车旋风链接的代码[测试通过]
Apr 20 PHP
php session_start()出错原因分析及解决方法
Oct 28 PHP
PHP的password_hash()使用实例
Mar 17 PHP
PHP中设置一个严格30分钟过期Session面试题的4种答案
Jul 30 PHP
程序员的表白神器“520”大声喊出来
May 20 PHP
php下载文件超时时间的设置方法
Oct 06 PHP
Yii框架结合sphinx,Ajax实现搜索分页功能示例
Oct 18 PHP
PHP如何读取由JavaScript设置的Cookie
Mar 22 PHP
thinkphp5框架扩展redis类方法示例
May 06 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
Mar 29 PHP
CI(CodeIgniter)框架中的增删改查操作
Jun 10 #PHP
PHP定时更新程序设计思路分享
Jun 10 #PHP
CI(CodeIgniter)框架配置
Jun 10 #PHP
教你如何用php实现LOL数据远程获取
Jun 10 #PHP
PHP面向对象教程之自定义类
Jun 10 #PHP
微信营销平台系统?刮刮乐的开发
Jun 10 #PHP
百度地图API应用之获取用户的具体位置
Jun 10 #PHP
You might like
配置支持SSI
2006/11/25 PHP
PHP如何得到当前页和上一页的地址?
2006/11/27 PHP
PHP 获取MSN好友列表的代码(2009-05-14测试通过)
2009/09/09 PHP
php中引用符号(&amp;)的使用详细介绍
2016/12/06 PHP
扩展Jquery插件处理mouseover时内部有子元素时发生样式闪烁
2011/12/08 Javascript
jQuery中获取Radio元素值的方法
2013/07/02 Javascript
JSONP跨域的原理解析及其实现介绍
2014/03/22 Javascript
jQuery实现的仿select功能代码
2015/08/19 Javascript
javascript常用经典算法实例详解
2015/11/25 Javascript
Javascript生成带参数的二维码示例
2016/10/10 Javascript
Js利用prototype自定义数组方法示例
2017/10/20 Javascript
layer实现关闭弹出层刷新父界面功能详解
2017/11/15 Javascript
Vue的轮播图组件实现方法
2018/03/03 Javascript
bootstrap动态调用select下拉框的实例代码
2018/08/09 Javascript
原生JS实现的放大镜特效示例【测试可用】
2018/12/08 Javascript
NVM安装nodejs的方法实用步骤
2019/01/16 NodeJs
深入理解es6块级作用域的使用
2019/03/28 Javascript
Vue 2.0 侦听器 watch属性代码详解
2019/06/19 Javascript
[02:43]DOTA2亚洲邀请赛场馆攻略——带你走进东方体育中心
2018/03/19 DOTA
python实现中文转换url编码的方法
2016/06/14 Python
Python实现在线暴力破解邮箱账号密码功能示例【测试可用】
2017/09/06 Python
Python爬虫获取图片并下载保存至本地的实例
2018/06/01 Python
python用pandas数据加载、存储与文件格式的实例
2018/12/07 Python
Python中关于浮点数的冷知识
2019/09/22 Python
jupyter notebook 调用环境中的Keras或者pytorch教程
2020/04/14 Python
Python爬虫requests库多种用法实例
2020/05/28 Python
如何用Python 实现全连接神经网络(Multi-layer Perceptron)
2020/10/15 Python
物业管理员岗位职责范文
2013/11/25 职场文书
卫生安全检查制度
2014/02/04 职场文书
校庆筹备方案
2014/03/30 职场文书
小学二年级评语
2014/04/21 职场文书
班级口号大全
2014/06/09 职场文书
优秀团员事迹材料1000字
2014/08/20 职场文书
2015年销售工作总结范文
2015/03/30 职场文书
2016年社区文体活动总结
2016/04/06 职场文书
留学文书中的个人陈述,应该注意哪些问题?
2019/08/23 职场文书