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 相关文章推荐
PHP4在WinXP下IIS和Apache2服务器上的安装实例
Oct 09 PHP
用PHP进行MySQL删除记录操作代码
Jun 07 PHP
php 字符过滤类,用于过滤各类用户输入的数据
May 27 PHP
PHP开发中常用的三个表单验证函数使用小结
Mar 03 PHP
《PHP编程最快明白》第三讲:php数组
Nov 01 PHP
php设计模式之观察者模式的应用详解
May 21 PHP
php中stdClass的用法分析
Feb 27 PHP
php使用CURL不依赖COOKIEJAR获取COOKIE的方法
Jun 17 PHP
php的常量和变量实例详解
Jun 27 PHP
Bootstrap+PHP实现多图上传功能实例详解
Apr 08 PHP
PHP使用XMLWriter读写xml文件操作详解
Jul 31 PHP
PHP写API输出的时用echo的原因详解
Apr 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导出csv格式数据并将数字转换成文本的思路以及代码分享
2014/06/05 PHP
PHP实现对站点内容外部链接的过滤方法
2014/09/10 PHP
php自定义hash函数实例
2015/05/05 PHP
tp5.1 框架查询表达式用法详解
2020/05/25 PHP
jQuery下通过$.browser来判断浏览器.
2011/04/05 Javascript
javascript四舍五入函数代码分享(保留后几位)
2013/12/10 Javascript
Nodejs中调用系统命令、Shell脚本和Python脚本的方法和实例
2015/01/01 NodeJs
js实现Select列表内容自动滚动效果代码
2015/08/20 Javascript
javascript实现动态统计图开发实例
2015/11/21 Javascript
AngularJs concepts详解及示例代码
2016/09/01 Javascript
老生常谈Bootstrap媒体对象
2017/07/06 Javascript
微信小程序数据存储与取值详解
2018/01/30 Javascript
vue2单元测试环境搭建
2018/05/24 Javascript
jQuery实现鼠标移入移出事件切换功能示例
2018/09/06 jQuery
浅谈Vue 性能优化之深挖数组
2018/12/11 Javascript
jquery轻量级数字动画插件countUp.js使用详解
2019/10/17 jQuery
JavaScript实现飞舞的泡泡效果
2020/02/07 Javascript
修改Python的pyxmpp2中的主循环使其提高性能
2015/04/24 Python
使用Python来开发Markdown脚本扩展的实例分享
2016/03/04 Python
简单学习Python time模块
2016/04/29 Python
深入理解python中的浅拷贝和深拷贝
2016/05/30 Python
Python基于Socket实现的简单聊天程序示例
2017/08/05 Python
Python实现字符串与数组相互转换功能示例
2017/09/22 Python
Python3使用PyQt5制作简单的画板/手写板实例
2017/10/19 Python
python抽取指定url页面的title方法
2018/05/11 Python
python脚本开机自启的实现方法
2019/06/28 Python
python函数参数(必须参数、可变参数、关键字参数)
2019/08/16 Python
Pytorch在NLP中的简单应用详解
2020/01/08 Python
python中Ansible模块的Playbook的具体使用
2020/05/28 Python
sklearn线性逻辑回归和非线性逻辑回归的实现
2020/06/09 Python
Gweniss格温妮丝女包官网:英国纯手工制造潮流包包品牌
2018/02/07 全球购物
幼儿园感恩节活动方案2014
2014/10/11 职场文书
2016中考冲刺决心书
2015/09/22 职场文书
幼儿园托班开学寄语(2016秋季)
2015/12/03 职场文书
php远程请求CURL案例(爬虫、保存登录状态)
2021/04/01 PHP
SpringBoot整合Mybatis Generator自动生成代码
2021/08/23 Java/Android