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伪静态写法附代码
Jun 20 PHP
php smarty模版引擎中的缓存应用
Dec 02 PHP
PHP 杂谈《重构-改善既有代码的设计》之四 简化条件表达式
Apr 09 PHP
基于PHP常用函数的用法详解
May 10 PHP
解析php curl_setopt 函数的相关应用及介绍
Jun 17 PHP
php分页函数完整实例代码
Sep 22 PHP
基于php的微信公众平台开发入门实例
Apr 15 PHP
php使用文本统计访问量的方法
May 12 PHP
PHP4和PHP5版本下解析XML文档的操作方法实例分析
May 20 PHP
PHP排序算法之基数排序(Radix Sort)实例详解
Apr 21 PHP
Laravel框架实现的上传图片到七牛功能详解
Sep 06 PHP
PHP实现文件上传与下载
Aug 28 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 curl 或 file_get_contents 获取需要授权页面的方法
2017/05/05 PHP
laravel 实现用户登录注销并限制功能
2019/10/24 PHP
老鱼 浅谈javascript面向对象编程
2010/03/04 Javascript
JS复制内容到剪切板的实例代码(兼容IE与火狐)
2013/11/19 Javascript
处理文本部分内容的TextRange对象应用实例
2014/07/29 Javascript
jQuery遮罩层效果实例分析
2016/01/14 Javascript
Js删除数组中某一项或几项的几种方法(推荐)
2016/07/27 Javascript
Angularjs结合Bootstrap制作的一个TODO List
2016/08/18 Javascript
jQuery+Ajax请求本地数据加载商品列表页并跳转详情页的实现方法
2017/07/12 jQuery
利用vue + koa2 + mockjs模拟数据的方法教程
2017/11/22 Javascript
VueCli3构建TS项目的方法步骤
2018/11/07 Javascript
Vue路由前后端设计总结
2019/08/06 Javascript
vuex管理状态仓库使用详解
2020/07/29 Javascript
小程序自动化测试的示例代码
2020/08/11 Javascript
[47:52]DOTA2-DPC中国联赛正赛 iG vs LBZS BO3 第二场 3月4日
2021/03/11 DOTA
Python彩色化Linux的命令行终端界面的代码实例分享
2016/07/02 Python
pandas or sql计算前后两行数据间的增值方法
2018/04/20 Python
Windows下PyCharm安装图文教程
2018/08/27 Python
详解Python在使用JSON时需要注意的编码问题
2019/12/06 Python
Django实现whoosh搜索引擎使用jieba分词
2020/04/08 Python
Python制作一个仿QQ办公版的图形登录界面
2020/09/22 Python
python如何实现word批量转HTML
2020/09/30 Python
澳大利亚冲浪和时尚服装网上购物:SurfStitch
2017/07/29 全球购物
出纳员岗位责任制
2014/02/11 职场文书
党员公开承诺事项
2014/03/25 职场文书
房产买卖委托公证书
2014/04/04 职场文书
团日活动总结书格式
2014/05/08 职场文书
感恩小明星事迹材料
2014/05/23 职场文书
护士求职信范文
2014/05/24 职场文书
品酒会策划方案
2014/05/26 职场文书
教师思想作风整顿个人剖析材料
2014/10/10 职场文书
股东授权委托书
2014/10/15 职场文书
会计简历自我评价
2015/03/10 职场文书
2015年先进个人自荐书
2015/03/24 职场文书
女儿满月酒致辞
2015/07/29 职场文书
毕业欢送会致辞
2015/07/29 职场文书