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调用三种数据库的方法(1)
Oct 09 PHP
用header 发送cookie的php代码
Mar 16 PHP
php语言流程控制中的主动与被动
Nov 05 PHP
php ci框架验证码实例分析
Jun 26 PHP
测试php函数的方法
Nov 13 PHP
PHP中CURL的CURLOPT_POSTFIELDS参数使用细节
Mar 17 PHP
php使用cookie显示用户上次访问网站日期的方法
Jan 26 PHP
Thinkphp和Bootstrap结合打造个性的分页样式(推荐)
Aug 01 PHP
Yii2基于Ajax自动获取表单数据的方法
Aug 10 PHP
mac os快速切换多个PHP版本的方法
Mar 07 PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
Feb 19 PHP
PHP数据源架构模式之表入口模式实例分析
Jan 23 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
上海牌131型七灯四波段四喇叭一级收音机
2021/03/02 无线电
PHP常用字符串函数用法实例总结
2020/06/04 PHP
初探jquery——表单应用范例
2007/02/20 Javascript
nodejs教程 安装express及配置app.js文件的详细步骤
2013/05/11 NodeJs
JS修改iframe页面背景颜色的方法
2015/04/01 Javascript
JS函数的几种定义方式分析
2015/12/17 Javascript
JavaScript位置与大小(1)之正确理解和运用与尺寸大小相关的DOM属性
2015/12/26 Javascript
jQuery实现图片走马灯效果的原理分析
2016/01/16 Javascript
AngularJS教程之环境设置
2016/08/16 Javascript
JS字符串长度判断,超出进行自动截取的实例(支持中文)
2017/03/06 Javascript
JavaScript实现删除数组重复元素的5种常用高效算法总结
2018/01/18 Javascript
基于element-ui组件手动实现单选和上传功能
2018/12/06 Javascript
nodejs微信开发之授权登录+获取用户信息
2019/03/17 NodeJs
vue实现微信二次分享以及自定义分享的示例
2019/03/20 Javascript
js实现的格式化数字和金额功能简单示例
2019/07/30 Javascript
JS面向对象编程——ES6 中class的继承用法详解
2020/03/03 Javascript
用python分割TXT文件成4K的TXT文件
2009/05/23 Python
JSON Web Tokens的实现原理
2017/04/02 Python
《Python学习手册》学习总结
2018/01/17 Python
使用python读取txt文件的内容,并删除重复的行数方法
2018/04/18 Python
python高级特性和高阶函数及使用详解
2018/10/17 Python
Python3网络爬虫中的requests高级用法详解
2019/06/18 Python
使用python的turtle函数绘制一个滑稽表情
2020/02/28 Python
容易被忽略的Python内置类型
2020/09/03 Python
pandas处理csv文件的方法步骤
2020/10/16 Python
css3旋转木马_动力节点Java学院整理
2017/07/12 HTML / CSS
HTML5 Canvas 破碎重组的视频特效的示例代码
2019/09/24 HTML / CSS
HTML5通用接口详解
2016/06/12 HTML / CSS
美国孕妇装购物网站:Motherhood Maternity
2019/09/22 全球购物
工程专业毕业生自荐信范文
2013/12/25 职场文书
教育英语专业毕业生的求职信
2014/03/13 职场文书
目标责任书范文
2014/04/14 职场文书
2015年五一劳动节演讲稿
2015/03/18 职场文书
Python图像处理之图像拼接
2021/04/28 Python
springboot中rabbitmq实现消息可靠性机制详解
2021/09/25 Java/Android
浅谈GO中的Channel以及死锁的造成
2022/03/18 Golang