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中使用模板的方法
May 24 PHP
php xml文件操作实现代码(二)
Mar 20 PHP
PHP函数spl_autoload_register()用法和__autoload()介绍
Feb 04 PHP
php代码书写习惯优化小结
Jun 20 PHP
JoshChen_web格式编码UTF8-无BOM的小细节分析
Aug 16 PHP
php实现cc攻击防御和防止快速刷新页面示例
Feb 13 PHP
采用memcache在web集群中实现session的同步会话
Jul 05 PHP
php创建多级目录的方法
Mar 24 PHP
php支持中文字符串分割的函数
May 28 PHP
Laravel中获取路由参数Route Parameters的五种方法示例
Sep 29 PHP
PHP 使用位运算实现四则运算的代码
Mar 09 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实现笛卡尔积算法的实例讲解
2019/12/22 PHP
javascript 的Document属性和方法集合
2010/01/25 Javascript
JSDoc 介绍使用规范JsDoc的使用介绍
2011/02/12 Javascript
JQUERY 实现窗口滚动搜索框停靠效果(类似滚动停靠)
2013/03/27 Javascript
关于jQuery object and DOM element
2013/04/15 Javascript
javascript中文本框中输入法切换的问题
2013/12/10 Javascript
jQuery层级选择器用法分析
2015/02/10 Javascript
JS+CSS实现Div弹出窗口同时背景变暗的方法
2015/03/04 Javascript
JS Ajax请求如何防止重复提交
2016/06/13 Javascript
input 禁止输入特殊字符的四种实现方式
2016/08/24 Javascript
jQuery双向列表选择器select版
2016/11/01 Javascript
详解Vuejs2.0之异步跨域请求
2017/04/20 Javascript
js与jQuery实现的用户注册协议倒计时功能实例【三种方法】
2017/11/09 jQuery
axios全局请求参数设置,请求及返回拦截器的方法
2018/03/05 Javascript
js中的面向对象之对象常见创建方法详解
2019/12/16 Javascript
vue搜索页开发实例代码详解(热门搜索,历史搜索,淘宝接口演示)
2020/04/11 Javascript
jquery.validate自定义验证用法实例分析【成功提示与择要提示】
2020/06/06 jQuery
ssm+vue前后端分离框架整合实现(附源码)
2020/07/08 Javascript
关于element-ui表单中限制输入纯数字的解决方式
2020/09/08 Javascript
python局部赋值的规则
2013/03/07 Python
python在指定目录下查找gif文件的方法
2015/05/04 Python
python Socket之客户端和服务端握手详解
2017/09/18 Python
手把手教你配置JupyterLab 环境的实现
2021/02/02 Python
详解Java中一维、二维数组在内存中的结构
2021/02/11 Python
HTML5播放实现rtmp流直播
2020/06/16 HTML / CSS
Nike爱尔兰官方网站:Nike.com (IE)
2018/03/12 全球购物
西班牙购买行李箱和背包网站:Maletas Greenwich
2019/10/08 全球购物
实习报告评语
2014/04/26 职场文书
联片教研活动总结
2014/07/01 职场文书
学校组织向国旗敬礼活动方案(中小学适用)
2014/09/27 职场文书
机关单位保密工作责任书
2015/05/11 职场文书
三八节祝酒词
2015/08/11 职场文书
《倍数和因数》教学反思
2016/02/23 职场文书
经典法律座右铭(50句)
2019/08/15 职场文书
vue中的可拖拽宽度div的实现示例
2022/04/08 Vue.js
一文了解Java动态代理的原理及实现
2022/07/07 Java/Android