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 静态页面中显示动态内容
Aug 14 PHP
win7 64位系统 配置php最新版开发环境(php+Apache+mysql)
Aug 15 PHP
PHP+iFrame实现页面无需刷新的异步文件上传
Sep 16 PHP
PHP+jQuery 注册模块的改进(一):验证码存入SESSION
Oct 14 PHP
thinkphp使用phpmailer发送邮件的方法
Nov 24 PHP
php实现将字符串按照指定距离进行分割的方法
Mar 14 PHP
php结合md5的加密解密算法实例
Sep 30 PHP
PHP数组生成XML格式数据的封装类实例
Nov 10 PHP
PHP中list方法用法示例
Dec 01 PHP
php实现的三个常用加密解密功能函数示例
Nov 06 PHP
php支付宝APP支付功能
Jul 29 PHP
PhpStorm+xdebug+postman调试技巧分享
Sep 15 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
js基于qrcode.js生成二维码的方法【附demo插件源码下载】
2016/12/28 PHP
使用Laravel中的查询构造器实现增删改查功能
2019/09/03 PHP
云网广告中的代码,提示出错,大家找找
2006/11/21 Javascript
window.addeventjs事件驱动函数集合addEvent等
2008/02/19 Javascript
拉动滚动条加载数据的jquery代码
2012/05/03 Javascript
js判断字符长度及中英文数字等
2014/03/19 Javascript
判断及设置浏览器全屏模式
2014/04/20 Javascript
JS/Jquery判断对象为空的方法
2015/06/11 Javascript
javascript验证邮件地址和MX记录的方法
2015/06/16 Javascript
JS不用正则验证输入的字符串是否为空(包含空格)的实现代码
2016/06/14 Javascript
jQuery stop()用法实例详解
2016/07/28 Javascript
JavaScript实现多栏目切换效果
2016/12/12 Javascript
Angular2 路由问题修复详解
2017/03/01 Javascript
Angular2实现自定义双向绑定属性
2017/03/22 Javascript
ES6新特性之模块Module用法详解
2017/04/01 Javascript
JS中type=&quot;button&quot;和type=&quot;submit&quot;的区别
2017/07/04 Javascript
Nodejs实现文件上传的示例代码
2017/09/26 NodeJs
React key值的作用和使用详解
2018/08/23 Javascript
JavaScript进阶(三)闭包原理与用法详解
2020/05/09 Javascript
python对指定目录下文件进行批量重命名的方法
2015/04/18 Python
在Python的Django框架下使用django-tagging的教程
2015/05/30 Python
解决python3读取Python2存储的pickle文件问题
2018/10/25 Python
Django中多种重定向方法使用详解
2019/07/17 Python
Django实现跨域请求过程详解
2019/07/25 Python
python实现图像检索的三种(直方图/OpenCV/哈希法)
2019/08/08 Python
Python学习笔记之For循环用法详解
2019/08/14 Python
Python 字符串、列表、元组的截取与切片操作示例
2019/09/17 Python
pandas factorize实现将字符串特征转化为数字特征
2019/12/19 Python
python中的split()函数和os.path.split()函数使用详解
2019/12/21 Python
HTML5之SVG 2D入门12—SVG DOM及DOM操作介绍
2013/01/30 HTML / CSS
美国知名的隐形眼镜电商:Contacts America
2019/11/19 全球购物
老师推荐信
2013/10/28 职场文书
2014中考励志标语
2014/06/05 职场文书
信访工作汇报材料
2014/10/27 职场文书
《彼得与狼》教学反思
2016/02/20 职场文书
2019中秋节祝福语大全,提前收藏啦
2019/09/10 职场文书