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
header跳转和include包含问题详解
Sep 08 PHP
关于PHP自动判断字符集并转码的详解
Jun 26 PHP
php删除字符串末尾子字符,删除开始字符,删除两端字符(实现代码)
Jun 27 PHP
微信扫描二维码登录网站代码示例
Dec 30 PHP
浅析ThinkPHP中的pathinfo模式和URL重写
Jan 06 PHP
Yii扩展组件编写方法实例分析
Jun 29 PHP
使用PHP如何实现高效安全的ftp服务器(一)
Dec 20 PHP
PHP用mysql_insert_id()函数获得刚插入数据或当前发布文章的ID
Nov 25 PHP
Yii2.0多文件上传实例说明
Jul 24 PHP
PHP实现模拟http请求的方法分析
Dec 20 PHP
PHP实现单条sql执行多个数据的insert语句方法
Oct 11 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模板技术原理【一】
2008/01/10 PHP
php将图片保存入mysql数据库失败的解决方法
2014/12/27 PHP
PHP中非常有用却鲜有人知的函数集锦
2019/08/17 PHP
深入解析PHP底层机制及相关原理
2020/12/11 PHP
CheckBox 如何实现全选?
2006/06/23 Javascript
用JavaScript实现UrlEncode和UrlDecode的脚本代码
2008/07/23 Javascript
JavaScript DOM学习第一章 W3C DOM简介
2010/02/19 Javascript
重写javascript中window.confirm的行为
2012/10/21 Javascript
js+html+css实现鼠标移动div实例
2013/01/30 Javascript
Javascript 颜色渐变效果的实现代码
2013/10/01 Javascript
jQuery的attr与prop使用介绍
2013/10/10 Javascript
当达到输入长度时表单自动切换焦点
2014/04/06 Javascript
jQuery选择器源码解读(六):Sizzle选择器匹配逻辑分析
2015/03/31 Javascript
浅谈javascript构造函数与实例化对象
2015/06/22 Javascript
javascript带回调函数的异步脚本载入方法实例分析
2015/07/02 Javascript
Css3制作变形与动画效果
2015/07/24 Javascript
详解jQuery简单的表格应用
2016/12/16 Javascript
vue获取DOM元素并设置属性的两种实现方法
2017/09/30 Javascript
React和Vue中监听变量变化的方法
2018/11/14 Javascript
Python类的基础入门知识
2008/11/24 Python
浅谈python中的面向对象和类的基本语法
2016/06/13 Python
使用Python脚本和ADB命令实现卸载App
2017/02/10 Python
python入门教程之识别验证码
2017/03/04 Python
Python autoescape标签用法解析
2020/01/17 Python
python数据类型可变不可变知识点总结
2020/03/06 Python
xadmin使用formfield_for_dbfield函数过滤下拉表单实例
2020/04/07 Python
澳大利亚拥有最佳跳伞降落点和最好服务的跳伞项目运营商:Skydive Australia
2018/03/05 全球购物
户籍证明的格式
2014/01/13 职场文书
如何写自我鉴定
2014/03/19 职场文书
医德医魂心得体会
2014/09/11 职场文书
合同审查法律意见书
2015/06/04 职场文书
2016银行招聘自荐信
2016/01/28 职场文书
教你利用Selenium+python自动化来解决pip使用异常
2021/05/20 Python
CSS实现切角+边框+投影+内容背景色渐变效果
2021/11/01 HTML / CSS
zabbix配置nginx监控的实现
2022/05/25 Servers
Golang gRPC HTTP协议转换示例
2022/06/16 Golang