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 相关文章推荐
WindowsXP中快速配置Apache+PHP5+Mysql
Jun 05 PHP
php正则表达式使用的详细介绍
Apr 27 PHP
作为PHP程序员应该了解MongoDB的五件事
Jun 03 PHP
深入file_get_contents与curl函数的详解
Jun 25 PHP
php实现监控varnish缓存服务器的状态
Dec 30 PHP
php+mysql结合Ajax实现点赞功能完整实例
Jan 30 PHP
PHP查找与搜索数组元素方法总结
Jun 12 PHP
PHP按指定键值对二维数组进行排序的方法
Dec 22 PHP
php时间计算相关问题小结
May 09 PHP
Thinkphp框架 表单自动验证登录注册 ajax自动验证登录注册
Dec 27 PHP
php实现的redis缓存类定义与使用方法示例
Aug 09 PHP
详解阿里云视频直播PHP-SDK接入教程
Jul 09 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
神族 PROTOSS 概述
2020/03/14 星际争霸
php小偷相关截取函数备忘
2010/11/28 PHP
php在文件指定行中写入代码的方法
2012/05/23 PHP
深入php之规范编程命名小结
2013/05/15 PHP
解析PHP汉字转换拼音的类
2013/06/18 PHP
php读取远程gzip压缩网页的方法
2014/12/29 PHP
PHP中__set()实例用法和基础讲解
2019/07/23 PHP
推荐dojo学习笔记
2007/03/24 Javascript
javascript DIV实现跟随鼠标移动
2020/03/19 Javascript
有关JavaScript中call()和apply() 的一些理解
2016/05/20 Javascript
JS实现太极旋转思路分析
2016/12/09 Javascript
微信小程序--onShareAppMessage分享参数用处(页面分享)
2017/04/18 Javascript
jQuery实现导航栏头部菜单项点击后变换颜色的方法
2017/07/19 jQuery
JavaScript获取tr td 的三种方式全面总结(推荐)
2017/08/15 Javascript
vue2.0s中eventBus实现兄弟组件通信的示例代码
2017/10/25 Javascript
webpack4简单入门实例
2018/09/06 Javascript
Node.js如何对SQLite的async/await封装详解
2019/02/14 Javascript
使用node-media-server搭建一个简易的流媒体服务器
2021/01/20 Javascript
Vue看了就会的8个小技巧
2021/01/21 Vue.js
Python中应该使用%还是format来格式化字符串
2018/09/25 Python
python 重命名轴索引的方法
2018/11/10 Python
Pytorch 搭建分类回归神经网络并用GPU进行加速的例子
2020/01/09 Python
Python对wav文件的重采样实例
2020/02/25 Python
a标签下载链接的简单实现
2016/09/13 HTML / CSS
函授本科自我鉴定
2013/11/03 职场文书
财务管理职业生涯规划范文
2013/12/27 职场文书
入党思想汇报
2014/01/05 职场文书
3分钟英语演讲稿
2014/04/29 职场文书
建筑工地标语
2014/06/18 职场文书
地方课程教学计划
2015/01/19 职场文书
挂靠协议书
2015/01/27 职场文书
贫困生证明范文
2015/06/16 职场文书
小学运动会入场口号
2015/12/24 职场文书
Goland使用Go Modules创建/管理项目的操作
2021/05/06 Golang
修改MySQL的默认密码的四种小方法
2021/05/26 MySQL
深入理解mysql事务隔离级别和存储引擎
2022/04/12 MySQL