php实现按指定大小等比缩放生成上传图片缩略图的方法


Posted in PHP onDecember 15, 2014

本文实例讲述了php实现按指定大小等比缩放生成上传图片缩略图的方法。分享给大家供大家参考。具体实现方法如下:

/** 

 * * 

 *等比缩放 

 * @param unknown_type $srcImage   源图片路径 

 * @param unknown_type $toFile     目标图片路径 

 * @param unknown_type $maxWidth   最大宽 

 * @param unknown_type $maxHeight  最大高 

 * @param unknown_type $imgQuality 图片质量 

 * @return unknown 

 */ 

function resize($srcImage,$toFile,$maxWidth = 100,$maxHeight = 100,$imgQuality=100) 

{ 

   

    list($width, $height, $type, $attr) = getimagesize($srcImage); 

    if($width < $maxWidth  || $height < $maxHeight) return ; 

    switch ($type) { 

    case 1: $img = imagecreatefromgif($srcImage); break; 

    case 2: $img = imagecreatefromjpeg($srcImage); break; 

    case 3: $img = imagecreatefrompng($srcImage); break; 

    } 

    $scale = min($maxWidth/$width, $maxHeight/$height); //求出绽放比例 

     

    if($scale < 1) { 

    $newWidth = floor($scale*$width); 

    $newHeight = floor($scale*$height); 

    $newImg = imagecreatetruecolor($newWidth, $newHeight); 

    imagecopyresampled($newImg, $img, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height); 

    $newName = ""; 

    $toFile = preg_replace("/(.gif|.jpg|.jpeg|.png)/i","",$toFile); 

 

    switch($type) { 

        case 1: if(imagegif($newImg, "$toFile$newName.gif", $imgQuality)) 

        return "$newName.gif"; break; 

        case 2: if(imagejpeg($newImg, "$toFile$newName.jpg", $imgQuality)) 

        return "$newName.jpg"; break; 

        case 3: if(imagepng($newImg, "$toFile$newName.png", $imgQuality)) 

        return "$newName.png"; break; 

        default: if(imagejpeg($newImg, "$toFile$newName.jpg", $imgQuality))

        return "$newName.jpg"; break; 

    } 

    imagedestroy($newImg); 

    } 

    imagedestroy($img); 

    return false; 

}

希望本文所述对大家的PHP程序设计有所帮助。

PHP 相关文章推荐
新浪微博API开发简介之用户授权(PHP基础篇)
Sep 25 PHP
php数组函数序列之each() - 获取数组当前内部指针所指向元素的键名和键值,并将指针移到下一位
Oct 31 PHP
CI(CodeIgniter)框架介绍
Jun 09 PHP
DEDECMS首页调用图片集里的多张图片
Jun 05 PHP
PHP中Session可能会引起并发问题
Jun 26 PHP
php面向对象编程self和static的区别
May 08 PHP
php版微信自动获取收货地址api用法示例
Sep 22 PHP
php实现的SSO单点登录系统接入功能示例分析
Oct 12 PHP
php base64 编码与解码实例代码
Mar 21 PHP
thinkPHP框架中layer.js的封装与使用方法示例
Jan 18 PHP
thinkPHP+LayUI 流加载实现功能
Sep 27 PHP
Laravel 在views中加载公共页面的实现代码
Oct 22 PHP
php实现可用于mysql,mssql,pg数据库操作类
Dec 13 #PHP
PHP中Memcache操作类及用法实例
Dec 12 #PHP
PHP实现PDO的mysql数据库操作类
Dec 12 #PHP
PHP实现的sqlite数据库连接类
Dec 12 #PHP
php+mysql数据库实现无限分类的方法
Dec 12 #PHP
PHP中if和or运行效率对比
Dec 12 #PHP
php实现高效获取图片尺寸的方法
Dec 12 #PHP
You might like
解析php中获取url与物理路径的总结
2013/06/21 PHP
PHP中key和current,next的联合运用实例分析
2016/03/29 PHP
PHP实现通过文本文件统计页面访问量功能示例
2019/02/13 PHP
增强的 JavaScript 的 trim 函数的代码
2007/08/13 Javascript
自己动手开发jQuery插件教程
2011/08/25 Javascript
jQuery右键菜单contextMenu使用实例
2011/09/28 Javascript
JQuery AJAX 中文乱码问题解决
2013/06/05 Javascript
node.js中的require使用详解
2014/12/15 Javascript
js中取得变量绝对值的方法
2015/01/03 Javascript
同步文本框内容JS代码实现
2016/08/04 Javascript
js实现文字截断功能
2016/09/14 Javascript
微信小程序日历组件calendar详解及实例
2017/06/08 Javascript
React-Native实现ListView组件之上拉刷新实例(iOS和Android通用)
2017/07/11 Javascript
js获取css的各种样式并且设置他们的方法
2017/08/22 Javascript
详解Js中的模块化是如何实现的
2017/10/18 Javascript
jquery.picsign图片标注组件实例详解
2018/02/02 jQuery
vue2.0模拟锚点的实例
2018/03/14 Javascript
vue用递归组件写树形控件的实例代码
2018/07/19 Javascript
jQuery中常用动画效果函数知识点整理
2018/08/19 jQuery
vue将毫秒数转化为正常日期格式的实例
2018/09/16 Javascript
微信小程序实现的一键连接wifi功能示例
2019/04/24 Javascript
详解微信小程序-canvas绘制文字实现自动换行
2019/04/26 Javascript
angularjs请求数据的方法示例
2019/08/06 Javascript
layui-tree实现Ajax异步请求后动态添加节点的方法
2019/09/23 Javascript
python判断windows隐藏文件的方法
2014/03/21 Python
10个易被忽视但应掌握的Python基本用法
2015/04/01 Python
python测试mysql写入性能完整实例
2018/01/18 Python
实例详解python函数的对象、函数嵌套、名称空间和作用域
2019/05/31 Python
Python PIL读取的图像发生自动旋转的实现方法
2019/07/05 Python
Django 用户登陆访问限制实例 @login_required
2020/05/13 Python
移动端适配 使px自动转换rem
2019/08/26 HTML / CSS
TripAdvisor土耳其网站:全球知名旅行社区,真实旅客评论
2017/04/17 全球购物
大学教师年终总结的自我评价
2013/10/29 职场文书
学雷锋志愿者活动方案
2014/08/21 职场文书
导游词之大雁塔景区
2019/09/17 职场文书
解决Jupyter-notebook不弹出默认浏览器的问题
2021/03/30 Python