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中去除换行解决办法小结(PHP_EOL)
Nov 27 PHP
PHP设计模式之观察者模式(Observer)详细介绍和代码实例
Apr 08 PHP
CentOS 6.3下安装PHP xcache扩展模块笔记
Sep 10 PHP
百度工程师讲PHP函数的实现原理及性能分析(二)
May 13 PHP
PHP生成plist数据的方法
Jun 16 PHP
10款实用的PHP开源工具
Oct 23 PHP
PHP中使用GD库绘制折线图 折线统计图的绘制方法
Nov 09 PHP
PHP实现微信网页授权开发教程
Jan 19 PHP
简单谈谈 php 文件锁
Feb 19 PHP
PHP实现简单的模板引擎功能示例
Sep 02 PHP
php使用event扩展的io复用测试的示例
Oct 20 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实现异步数据调用的方法
2015/12/24 PHP
php 字符串中是否包含指定字符串的多种方法
2018/04/12 PHP
Expandable &quot;Detail&quot; Table Rows
2007/08/29 Javascript
js数字输入框(包括最大值最小值限制和四舍五入)
2009/11/24 Javascript
Date对象格式化函数代码
2010/07/17 Javascript
capacityFixed 基于jquery的类似于新浪微博新消息提示的定位框
2011/05/24 Javascript
jQuery调用AJAX时Get和post公用的乱码解决方法实例说明
2013/06/04 Javascript
js获取select标签的值且兼容IE与firefox
2013/12/30 Javascript
Js冒泡事件详解及阻止示例
2014/03/21 Javascript
QQ空间顶部折页撕开效果示例代码
2014/06/15 Javascript
中文输入法不触发onkeyup事件的解决办法
2014/07/09 Javascript
使用jQuery Rotare实现微信大转盘抽奖功能
2016/06/20 Javascript
Nodejs 获取时间加手机标识的32位标识实现代码
2017/03/07 NodeJs
Vue2几种常见开局方式详解
2017/09/09 Javascript
Vue中computed、methods与watch的区别总结
2019/04/10 Javascript
微信小程序实现时间戳格式转换
2020/07/20 Javascript
浅谈vue使用axios的回调函数中this不指向vue实例,为undefined
2020/09/21 Javascript
python多线程threading.Lock锁用法实例
2014/11/01 Python
Python自定义主从分布式架构实例分析
2016/09/19 Python
关于python的bottle框架跨域请求报错问题的处理方法
2017/03/19 Python
python判断文件夹内是否存在指定后缀文件的实例
2019/06/10 Python
python同步两个文件夹下的内容
2019/08/29 Python
Python-opencv 双线性插值实例
2020/01/17 Python
Python实现分数序列求和
2020/02/25 Python
Python使用Pygame绘制时钟
2020/11/29 Python
CSS3 绘制BMW logo实的现代码
2013/04/25 HTML / CSS
基于CSS3实现图片模糊过滤效果
2015/11/19 HTML / CSS
世界上最大的专业美容用品零售商:Sally Beauty
2017/07/02 全球购物
擅自离岗检讨书
2014/02/11 职场文书
高中生第一学年自我鉴定
2014/09/12 职场文书
感谢信格式范文
2015/01/22 职场文书
商场圣诞节活动总结
2015/05/06 职场文书
庆祝教师节新闻稿
2015/07/17 职场文书
2016开学第一课心得体会
2016/01/23 职场文书
甜美蛋糕店的创业计划书模板,拿来即用!
2019/08/21 职场文书
win10清理dns缓存
2022/04/19 数码科技