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的配置文件php.ini
Oct 09 PHP
如何在PHP中使用Oracle数据库(3)
Oct 09 PHP
php学习笔记 面向对象中[接口]与[多态性]的应用
Jun 16 PHP
PHP获取url的函数代码
Aug 02 PHP
PHP 冒泡排序 二分查找 顺序查找 二维数组排序算法函数的详解
Jun 25 PHP
destoon二次开发常用数据库操作
Jun 21 PHP
搭建Vim为自定义的PHP开发工具的一些技巧
Dec 11 PHP
WordPress中注册菜单与调用菜单的方法详解
Dec 18 PHP
php魔法函数与魔法常量使用介绍
Jul 23 PHP
php7函数,声明,返回值等新特性介绍
May 25 PHP
php实现的支付宝网页支付功能示例【基于TP5框架】
Sep 16 PHP
PHP 计算至少是其他数字两倍的最大数的实现代码
May 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
解析VS2010利用VS.PHP插件调试PHP的方法
2013/07/19 PHP
Nginx下配置codeigniter框架方法
2015/04/07 PHP
锋利的jQuery 要点归纳(二) jQuery中的DOM操作(下)
2010/03/23 Javascript
JQuery中的ready函数冲突的解决方法
2010/05/17 Javascript
jquery each的几种常用的使用方法示例
2014/01/21 Javascript
JavaScript位移运算符(无符号) &gt;&gt;&gt; 三个大于号 的使用方法详解
2016/03/31 Javascript
Easyui的组合框的取值与赋值
2016/10/28 Javascript
socket.io与pm2(cluster)集群搭配的解决方案
2017/06/02 Javascript
浅谈super-vuex使用体验
2018/06/25 Javascript
使用p5.js临摹动态图片
2019/11/04 Javascript
Vue Render函数原理及代码实例解析
2020/07/30 Javascript
[10:24]郎朗助力完美“圣”典,天籁交织奏响序曲
2016/12/18 DOTA
python学习手册中的python多态示例代码
2014/01/21 Python
python使用PyGame播放Midi和Mp3文件的方法
2015/04/24 Python
教你使用python实现微信每天给女朋友说晚安
2018/03/23 Python
用python统计代码行的示例(包括空行和注释)
2018/07/24 Python
Python日期时间模块datetime详解与Python 日期时间的比较,计算实例代码
2018/09/14 Python
Python进阶之自定义对象实现切片功能
2019/01/07 Python
浅谈python编译pyc工程--导包问题解决
2019/03/20 Python
python在新的图片窗口显示图片(图像)的方法
2019/07/11 Python
CSS3五个技巧给你的网站带来出色的效果
2009/04/02 HTML / CSS
史泰博(Staples)中国官方网站:办公用品一站式采购
2016/09/05 全球购物
尤为Wconcept中国官网:韩国设计师品牌服饰
2019/01/10 全球购物
西雅图的买手店:Totokaelo
2019/10/19 全球购物
YSL圣罗兰美妆俄罗斯官网:Yves Saint Lauret RU
2020/09/23 全球购物
仓库管理专业个人自我评价范文
2013/11/11 职场文书
关于毕业的中学校园广播稿
2014/01/26 职场文书
公证书标准格式
2014/04/10 职场文书
三峡大坝导游词
2015/01/31 职场文书
英语演讲开场白
2015/05/29 职场文书
大学运动会加油稿
2015/07/22 职场文书
2016关于预防职务犯罪的心得体会
2016/01/21 职场文书
2016年小学端午节活动总结
2016/04/01 职场文书
java objectUtils 使用可能会出现的问题
2022/02/28 Java/Android
MySQL数据管理操作示例讲解
2022/12/24 MySQL
postgresql中如何执行sql文件
2023/05/08 PostgreSQL