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 相关文章推荐
推荐文章系统(一)
Oct 09 PHP
PHP程序61条面向对象分析设计的经验小结
Nov 12 PHP
php中将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串
Aug 23 PHP
php include和require的区别深入解析
Jun 17 PHP
解析PHP中$_FILES的使用以及注意事项
Jul 05 PHP
php array_merge函数使用需要注意的一个问题
Mar 30 PHP
PHP 在数组中搜索给定的简单实例 array_search 函数
Jun 13 PHP
浅谈php和js中json的编码和解码
Oct 24 PHP
PHP 7安装调试工具Xdebug扩展的方法教程
Jun 17 PHP
php通过pecl方式安装扩展的实例讲解
Feb 02 PHP
PHP自动识别当前使用移动终端
May 21 PHP
laravel admin实现分类树/模型树的示例代码
Jun 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
php Try Catch异常测试
2009/03/01 PHP
让你成为更出色的PHP开发者的10个技巧
2011/02/25 PHP
php操作redis中的hash和zset类型数据的方法和代码例子
2014/07/05 PHP
ThinkPHP中关联查询实例
2014/12/02 PHP
php在apache环境下实现gzip配置方法
2015/04/02 PHP
PHP获取远程图片并保存到本地的方法
2015/05/12 PHP
php安装扩展mysqli的实现步骤及报错解决办法
2017/09/23 PHP
Javascript 布尔型分析
2008/12/22 Javascript
JSChart轻量级图形报表工具(内置函数中文参考)
2010/10/11 Javascript
基于jquery创建的一个图片、视频缓冲的效果样式插件
2012/08/28 Javascript
javascript 二进制运算技巧解析
2012/11/27 Javascript
jquery prop的使用介绍及与attr的区别
2013/12/19 Javascript
纯javascript模仿微信打飞机小游戏
2015/08/20 Javascript
easyui tree带checkbox实现单选的简单实例
2016/11/07 Javascript
简单实现JavaScript图片切换效果
2016/11/28 Javascript
jQuery展示表格点击变色、全选、删除
2017/01/05 Javascript
基于javascript实现最简单选项卡切换
2017/02/01 Javascript
Angular2数据绑定详解
2017/04/18 Javascript
vue.js实例todoList项目
2017/07/07 Javascript
ligerUI---ListBox(列表框可移动的实例)
2017/11/28 Javascript
基于Vue实现拖拽功能
2020/07/29 Javascript
mpvue开发音频类小程序踩坑和建议详解
2019/03/12 Javascript
基于JavaScript获取url参数2种方法
2020/04/17 Javascript
JavaScript 空间坐标的使用
2020/08/19 Javascript
vue中的循环对象属性和属性值用法
2020/09/04 Javascript
Python性能优化的20条建议
2014/10/25 Python
Python中使用插入排序算法的简单分析与代码示例
2016/05/04 Python
pandas 按照特定顺序输出的实现代码
2018/07/10 Python
Python利用itchat库向好友或者公众号发消息的实例
2019/02/21 Python
Python数据可视化:泊松分布详解
2019/12/07 Python
python中Pexpect的工作流程实例讲解
2021/03/02 Python
iframe跨域的几种常用方法
2019/11/11 HTML / CSS
迪卡侬波兰体育用品商店:Decathlon波兰
2020/03/31 全球购物
先进基层党组织事迹材料
2014/12/25 职场文书
二审答辩状格式
2015/05/22 职场文书
详解Mysql 函数调用优化
2021/04/07 MySQL