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 相关文章推荐
一个PHP+MSSQL分页的例子
Oct 09 PHP
php 删除记录实现代码
Mar 12 PHP
PHP遍历数组的三种方法及效率对比分析
Feb 12 PHP
深入浅出php socket编程
May 13 PHP
PHP批量生成图片缩略图的方法
Jun 18 PHP
PHP中的session安全吗?
Jan 22 PHP
Laravel中注册Facades的步骤详解
Mar 16 PHP
thinkphp修改配置进入默认首页的方法
Feb 07 PHP
PHP实现的登录页面信息提示功能示例
Jul 24 PHP
PHP实现求连续子数组最大和问题2种解决方法
Dec 26 PHP
PHP CURL使用详解
Mar 21 PHP
浅析PHP7的多进程及实例源码
Apr 14 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
CodeIgniter使用smtp服务发送html邮件的方法
2015/06/10 PHP
PHP+Mysql+jQuery实现发布微博程序 php篇
2015/10/15 PHP
twig里使用js变量的方法
2016/02/05 PHP
php可变长参数处理函数详解
2017/02/22 PHP
Thinkphp结合AJAX长轮询实现PC与APP推送详解
2017/07/31 PHP
PHP接口继承及接口多继承原理与实现方法详解
2017/10/18 PHP
PHP+ajax实现上传、删除、修改单张图片及后台处理逻辑操作详解
2020/02/12 PHP
JXTree对象,读取外部xml文件数据,生成树的函数
2007/04/02 Javascript
IE6/7 and IE8/9/10(IE7模式)依次隐藏具有absolute或relative的父元素和子元素后再显示父元素
2011/07/31 Javascript
分享一个asp.net pager分页控件
2012/01/04 Javascript
jQuery移除tr无效的解决方法(tr是动态添加)
2014/09/22 Javascript
JavaScript限定图片显示大小的方法
2015/03/11 Javascript
如何用jQuery实现ASP.NET GridView折叠伸展效果
2015/09/26 Javascript
javascript获取网页各种高宽及位置的方法总结
2016/07/27 Javascript
AngularJS入门教程二:在路由中传递参数的方法分析
2017/05/27 Javascript
详解AngularJS脏检查机制及$timeout的妙用
2017/06/19 Javascript
详解VUE中v-bind的基本用法
2017/07/13 Javascript
微信小程序实现传递多个参数与事件处理
2019/08/12 Javascript
JS实现提示框跟随鼠标移动
2019/08/27 Javascript
基于javascript的无缝滚动动画实现2
2020/08/07 Javascript
微信小程序选择图片控件
2021/01/19 Javascript
Python中类的继承代码实例
2014/10/28 Python
python中OrderedDict的使用方法详解
2017/05/05 Python
Django实现组合搜索的方法示例
2018/01/23 Python
python 将md5转为16字节的方法
2018/05/29 Python
对Xpath 获取子标签下所有文本的方法详解
2019/01/02 Python
Pycharm新建模板默认添加个人信息的实例
2019/07/15 Python
python应用文件读取与登录注册功能
2019/09/23 Python
Python爬虫入门有哪些基础知识点
2020/06/02 Python
servlet面试题
2012/08/20 面试题
连锁经营管理专业大学生求职信
2013/10/30 职场文书
酒店服务与管理毕业生求职信
2013/11/02 职场文书
工程部主管岗位职责
2015/02/12 职场文书
2016国庆节67周年红领巾广播稿
2015/12/18 职场文书
关于办理居住证的介绍信模板
2019/11/27 职场文书
Windows下redis下载、redis安装及使用教程
2021/06/02 Redis