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缓存技术介绍
Nov 25 PHP
php下使用以下代码连接并测试
Apr 09 PHP
php中理解print EOT分界符和echo EOT的用法区别小结
Feb 21 PHP
php设计模式 Interpreter(解释器模式)
Jun 26 PHP
有关phpmailer的详细介绍及使用方法
Jan 28 PHP
php利用新浪接口查询ip获取地理位置示例
Jan 20 PHP
php使用glob函数快速查询指定目录文件的方法
Nov 15 PHP
PHP面向对象继承用法详解(优化与减少代码重复)
Dec 02 PHP
使用一个for循环将N*N的二维数组的所有值置1实现方法
May 29 PHP
PHP中遍历数组的三种常用方法实例分析
Jun 24 PHP
PHP 8新特性简介
Aug 18 PHP
PHP执行普通shell命令流程解析
Aug 24 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
Javascript MD4
2006/12/20 Javascript
jquery 常用操作整理 基础入门篇
2009/10/14 Javascript
JavaScript 事件记录使用说明
2009/10/20 Javascript
JS验证控制输入中英文字节长度(input、textarea等)具体实例
2013/06/21 Javascript
document.getElementBy(&quot;id&quot;)与$(&quot;#id&quot;)有什么区别
2013/09/22 Javascript
js对列表中第一个值处理与jsp页面对列表中第一个值处理的区别详解
2013/11/05 Javascript
js去除输入框中所有的空格和禁止输入空格的方法
2014/06/09 Javascript
node.js中的http.response.setHeader方法使用说明
2014/12/14 Javascript
JavaScript的Date()方法使用详解
2015/06/09 Javascript
javascript实现类似百度分享功能的方法
2015/07/27 Javascript
Javascript json object 与string 相互转换的简单实现
2016/09/27 Javascript
jquery加载单文件vue组件的方法
2017/06/20 jQuery
Bootstrap treeview实现动态加载数据并添加快捷搜索功能
2018/01/07 Javascript
微信小程序按钮点击跳转页面详解
2019/05/06 Javascript
使用Vue.set()方法实现响应式修改数组数据步骤
2019/11/09 Javascript
javascript实现计算器功能
2020/03/30 Javascript
JS寄快递地址智能解析的实现代码
2020/07/16 Javascript
在Python中处理日期和时间的基本知识点整理汇总
2015/05/22 Python
Python设置默认编码为utf8的方法
2016/07/01 Python
Python如何判断数独是否合法
2016/09/08 Python
python通过zabbix api获取主机
2018/09/17 Python
python实现简单的文字识别
2018/11/27 Python
django xadmin中form_layout添加字段显示方式
2020/03/30 Python
python中re模块知识点总结
2021/01/17 Python
鲜为人知的HTML5语音合成功能
2019/05/17 HTML / CSS
澳大利亚最大的护发和护肤品购物网站:RY
2019/12/26 全球购物
Love, Bonito国际官网:新加坡女装品牌
2021/03/13 全球购物
什么是WEB控件?使用WEB控件有哪些优势?
2012/01/21 面试题
电子商务专业自我鉴定
2013/12/18 职场文书
入党自我评价优缺点
2014/01/25 职场文书
《逃家小兔》教学反思
2014/02/23 职场文书
正风肃纪剖析材料
2014/09/30 职场文书
社区党员群众路线教育实践活动心得体会
2014/11/03 职场文书
2015年六年级班主任工作总结
2015/10/15 职场文书
2019交通安全宣传标语集锦!
2019/06/28 职场文书
详解Python类和对象内容
2021/06/22 Python