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 相关文章推荐
数据库相关问题
Oct 09 PHP
PHP开发文件系统实例讲解
Oct 09 PHP
dede3.1分页文字采集过滤规则详说(图文教程)续四
Apr 03 PHP
mysql From_unixtime及UNIX_TIMESTAMP及DATE_FORMAT日期函数
Mar 21 PHP
php后台如何避免用户直接进入方法实例
Oct 15 PHP
浅谈PHP调用Webservice思路及源码分享
Jun 04 PHP
PHP实现文件下载断点续传详解
Oct 15 PHP
PHP5.3以上版本安装ZendOptimizer扩展
Mar 27 PHP
php统计数组元素个数的方法
Jul 02 PHP
php+html5+ajax实现上传图片的方法
May 14 PHP
Thinkphp5框架简单实现钩子(Hook)行为的方法示例
Sep 03 PHP
浅谈laravel-admin的sortable和orderby使用问题
Oct 03 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
php Smarty初体验二 获取配置信息
2011/08/08 PHP
基于PHP5魔术常量与魔术方法的详解
2013/06/13 PHP
一漂亮的PHP图片验证码实例
2014/03/21 PHP
php中define用法实例
2015/07/30 PHP
php使用curl通过代理获取数据的实现方法
2016/05/16 PHP
PHP读MYSQL中文乱码的快速解决方法
2016/10/01 PHP
详解PHP序列化和反序列化原理
2018/01/15 PHP
Javascript图像处理思路及实现代码
2012/12/25 Javascript
jQuery Trim去除字符串首尾空字符的实现方法说明
2014/02/11 Javascript
jQuery 1.9移除了$.browser可以使用$.support来替代
2014/09/03 Javascript
Javascript 赋值机制详解
2014/11/23 Javascript
Jquery实现动态切换图片的方法
2015/05/18 Javascript
javascript原型继承工作原理和实例详解
2016/04/07 Javascript
基于zepto.js简单实现上传图片
2016/06/21 Javascript
jQuery 插件实现随机自由弹跳气泡样式
2017/01/12 Javascript
js/jq仿window文件夹移动/剪切/复制等操作代码
2017/03/08 Javascript
JS闭包用法实例分析
2017/03/27 Javascript
详解vue slot插槽的使用方法
2017/06/13 Javascript
Mac中安装nvm的教程分享
2017/12/11 Javascript
JavaScript如何获取一个元素的样式信息
2019/07/29 Javascript
JavaScript arguments.callee作用及替换方案详解
2020/09/02 Javascript
对numpy中向量式三目运算符详解
2018/10/31 Python
python 直接赋值和copy的区别详解
2019/08/07 Python
Python 求数组局部最大值的实例
2019/11/26 Python
Python之关于类变量的两种赋值区别详解
2020/03/12 Python
基于Python共轭梯度法与最速下降法之间的对比
2020/04/02 Python
python中翻译功能translate模块实现方法
2020/12/17 Python
网页切图的CSS和布局经验与要点
2015/04/09 HTML / CSS
html5页面结构_动力节点Java学院整理
2017/07/10 HTML / CSS
DKNY品牌官网:纽约大都会时尚风格
2016/10/20 全球购物
经理助理岗位职责
2014/03/05 职场文书
《记金华的双龙洞》教学反思
2014/04/19 职场文书
学校宣传标语
2014/06/18 职场文书
党员学习新党章思想汇报
2014/10/25 职场文书
Unity连接MySQL并读取表格数据的实现代码
2021/06/20 MySQL
Go微服务项目配置文件的定义和读取示例详解
2022/06/21 Golang