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 设计模式之 工厂模式
Dec 19 PHP
UCenter 批量添加用户的php代码
Jul 17 PHP
处理(php-cgi.exe - FastCGI 进程超过了配置的请求超时时限)的问题
Jul 03 PHP
php合并js请求的例子
Nov 01 PHP
php根据年月获取季度的方法
Mar 31 PHP
php中单个数据库字段多列显示(单字段分页、横向输出)
Jul 28 PHP
php+ajax实现无刷新分页的方法
Nov 04 PHP
php提交表单发送邮件的方法
Mar 20 PHP
php截取指定2个字符之间字符串的方法
Apr 15 PHP
PHP Smarty模版简单使用方法
Mar 30 PHP
Laravel框架FormRequest中重写错误处理的方法
Feb 18 PHP
安装PHP扩展时解压官方 tgz 文件后没有configure文件无法进行配置编译的问题
Aug 26 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截取字符串之截取utf8或gbk编码的中英文字符串示例
2014/03/12 PHP
ThinkPHP的Widget扩展实例
2014/06/19 PHP
Yii核心组件AssetManager原理分析
2014/12/02 PHP
重载toString实现JS HashMap分析
2011/03/13 Javascript
基于jquery的内容循环滚动小模块(仿新浪微博未登录首页滚动微博显示)
2011/03/28 Javascript
网页整体变灰白色(兼容各浏览器)实例
2013/04/21 Javascript
js完美的div拖拽实例代码
2014/01/22 Javascript
IE下双击checkbox反应延迟问题的解决方法
2014/03/27 Javascript
connect中间件session、cookie的使用方法分享
2014/06/17 Javascript
jQuery知识点整理
2015/01/30 Javascript
js实现的早期滑动门菜单效果代码
2015/08/27 Javascript
JQuery ZTree使用方法详解
2017/01/07 Javascript
浅析JavaScript中的平稳退化(graceful degradation)
2017/07/24 Javascript
vue router 跳转后回到顶部的实例
2018/08/31 Javascript
详解如何创建并发布一个 vue 组件
2018/11/08 Javascript
vuex如何重置所有state(可定制)
2019/01/17 Javascript
vue之a-table中实现清空选中的数据
2019/11/07 Javascript
修改Vue打包后的默认文件名操作
2020/08/12 Javascript
详解 javascript对象创建模式
2020/10/30 Javascript
python使用os.listdir和os.walk获得文件的路径的方法
2017/12/16 Python
Python使用flask框架操作sqlite3的两种方式
2018/01/31 Python
Python实现扣除个人税后的工资计算器示例
2018/03/26 Python
浅析python3中的os.path.dirname(__file__)的使用
2018/08/30 Python
Python面向对象程序设计之私有属性及私有方法示例
2019/04/08 Python
使用selenium和pyquery爬取京东商品列表过程解析
2019/08/15 Python
如何解决flask修改静态资源后缓存文件不能及时更改问题
2020/08/02 Python
介绍一下#error预处理
2015/09/25 面试题
七一表彰活动方案
2014/01/18 职场文书
高等教育学自荐书范文
2014/02/10 职场文书
英语课前三分钟演讲稿(6篇)
2014/09/13 职场文书
法人单位适用的授权委托书
2014/09/19 职场文书
公安四风对照检查材料思想汇报
2014/10/11 职场文书
交警失职检讨书
2015/01/26 职场文书
面试通知单大全
2015/04/20 职场文书
亮剑观后感500字
2015/06/05 职场文书
springmvc直接不经过controller访问WEB-INF中的页面问题
2022/02/24 Java/Android