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 相关文章推荐
3
Oct 09 PHP
关于时间计算的结总
Dec 06 PHP
《PHP编程最快明白》第五讲:php目录、文件操作
Nov 01 PHP
用PHP实现浏览器点击下载TXT文档的方法详解
Jun 02 PHP
php把session写入数据库示例
Feb 26 PHP
从零开始学YII2框架(六)高级应用程序模板
Aug 20 PHP
详解PHP序列化反序列化的方法
Oct 27 PHP
CodeIgniter配置之SESSION用法实例分析
Jan 19 PHP
thinkphp实现分页显示功能
Dec 03 PHP
使用PHP json_decode可能遇到的坑与解决方法
Aug 03 PHP
PHP中in_array的隐式转换的解决方法
Mar 06 PHP
thinkphp5实现无限级分类
Feb 18 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读取excel文件的简单实例
2013/08/26 PHP
PHP实现QQ快速登录的方法
2016/09/28 PHP
使用XHProf查找PHP性能瓶颈的实例
2017/12/13 PHP
永不消失的title提示代码
2007/02/15 Javascript
学习jquery之一
2007/04/27 Javascript
JS 文件本身编码转换 图文教程
2009/10/12 Javascript
jQuery中的bind绑定事件与文本框改变事件的临时解决方法
2010/08/13 Javascript
js修改table中Td的值(定义td的双击事件)
2013/01/10 Javascript
js将iframe中控件的值传到主页面控件中的实现方法
2013/03/11 Javascript
jQuery中hasClass()方法用法实例
2015/01/06 Javascript
javascript判断网页是关闭还是刷新
2015/09/12 Javascript
基于javascript实现随机颜色变化效果
2016/01/14 Javascript
js和jQuery设置Opacity半透明 兼容IE6
2016/05/24 Javascript
基于BootStrap实现局部刷新分页实例代码
2016/08/08 Javascript
微信小程序 image组件binderror使用例子与js中的onerror区别
2017/02/15 Javascript
Vue.js项目部署到服务器的详细步骤
2017/07/17 Javascript
详解Node全局变量global模块
2017/09/28 Javascript
vue+swiper实现组件化开发的实例代码
2017/10/26 Javascript
axios发送post请求springMVC接收不到参数的解决方法
2018/03/05 Javascript
JavaScript实现PC端横向轮播图
2020/02/07 Javascript
vue 动态组件用法示例小结
2020/03/06 Javascript
js实现跳一跳小游戏
2020/07/31 Javascript
如何使用 vue-cli 创建模板项目
2020/11/19 Vue.js
浅谈python数据类型及类型转换
2017/12/18 Python
python批量实现Word文件转换为PDF文件
2018/03/15 Python
详解Python如何生成词云的方法
2018/06/01 Python
Pycharm+django2.2+python3.6+MySQL实现简单的考试报名系统
2019/09/05 Python
解决TensorFlow模型恢复报错的问题
2020/02/06 Python
Python基于DB-API操作MySQL数据库过程解析
2020/04/23 Python
Python操控mysql批量插入数据的实现方法
2020/10/27 Python
孕妇装中的著名品牌:Isabella Oliver(伊莎贝拉·奥利弗)
2016/10/31 全球购物
护士岗位职责
2014/02/16 职场文书
大学优秀班主任事迹材料
2014/05/02 职场文书
学雷锋演讲稿汇总
2014/05/10 职场文书
孝敬父母的演讲稿
2014/05/14 职场文书
用position:sticky完美解决小程序吸顶问题的实现方法
2021/04/24 HTML / CSS