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 相关文章推荐
windows下开发并编译PHP扩展的方法
Mar 18 PHP
php header Content-Type类型小结
Jul 03 PHP
ThinkPHP使用心得分享-分页类Page的用法
May 15 PHP
PHP提示Warning:phpinfo() has been disabled函数禁用的解决方法
Dec 17 PHP
php采集神器cURL使用方法详解
Feb 19 PHP
php异步:在php中使用fsockopen curl实现类似异步处理的功能方法
Dec 10 PHP
PHP实现支付宝即时到账功能
Dec 21 PHP
浅谈PHP接入(第三方登录)QQ登录 OAuth2.0 过程中遇到的坑
Oct 13 PHP
PHP经典设计模式之依赖注入定义与用法详解
May 21 PHP
PHP面向对象程序设计之对象的遍历操作示例
Jun 12 PHP
浅谈php常用的7大框架的优缺点
Jul 20 PHP
PHP获取类私有属性的3种方法
Sep 10 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
Laravel框架学习笔记(一)环境搭建
2014/10/15 PHP
老生常谈php中传统验证与thinkphp框架(必看篇)
2017/06/10 PHP
微信小程序发送订阅消息的方法(php 为例)
2019/10/30 PHP
Apply an AutoFormat to an Excel Spreadsheet
2007/06/12 Javascript
利用json获取字符出现次数的代码
2012/03/22 Javascript
JQuery为textarea添加maxlength属性并且兼容IE
2013/04/25 Javascript
JQuery给元素绑定click事件多次执行的解决方法
2014/05/29 Javascript
JS基于VML技术实现的五角星礼花效果代码
2015/10/26 Javascript
详解javascript高级定时器
2015/12/31 Javascript
基于Jquery插件实现跨域异步上传文件功能
2016/04/26 Javascript
jquery实现ajax提交表单信息的简单方法(推荐)
2016/08/24 Javascript
微信公众号支付H5调用支付解析
2016/11/04 Javascript
Node.js中如何合并两个复杂对象详解
2016/12/31 Javascript
Vue.js在使用中的一些注意知识点
2017/04/29 Javascript
在微信小程序中渲染HTML内容的方法示例
2018/09/28 Javascript
angularJS1 url中携带参数的获取方法
2018/10/09 Javascript
AngularJs返回前一页面时刷新一次前面页面的方法
2018/10/09 Javascript
vue项目中实现的微信分享功能示例
2019/01/21 Javascript
利用node 判断打开的是文件 还是 文件夹的实例
2019/06/10 Javascript
vue通过数据过滤实现表格合并
2020/11/30 Javascript
layui点击数据表格添加或删除一行的例子
2019/09/12 Javascript
javascript 关于赋值、浅拷贝、深拷贝的个人理解
2019/11/01 Javascript
[01:38]DOTA2辉夜杯 欢乐的观众现场采访
2015/12/26 DOTA
python基础教程之获取本机ip数据包示例
2014/02/10 Python
Python数据结构与算法之链表定义与用法实例详解【单链表、循环链表】
2017/09/28 Python
使用pandas将numpy中的数组数据保存到csv文件的方法
2018/06/14 Python
对python pandas读取剪贴板内容的方法详解
2019/01/24 Python
python Tensor和Array对比分析
2020/01/08 Python
基于python实现删除指定文件类型
2020/07/21 Python
Linux中如何设置Java环境变量(Ubuntu)
2016/07/24 面试题
安全生产计划书
2014/05/04 职场文书
区级文明单位申报材料
2014/05/15 职场文书
社会工作专业自荐信
2014/09/26 职场文书
2015年加油站工作总结
2015/05/13 职场文书
朋友离别感言
2015/08/04 职场文书
《狼王梦》读后感:可怜天下父母心
2019/11/01 职场文书