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用户指南-cookies部分
Oct 09 PHP
PHP 文件上传进度条的两种实现方法的代码
Nov 25 PHP
php中模拟POST传递数据的两种方法分享
Sep 16 PHP
php实现utf-8和GB2312编码相互转换函数代码
Feb 07 PHP
php实现多张图片上传加水印技巧
Apr 18 PHP
zf框架db类的分页示例分享
Mar 14 PHP
PHP中COOKIES使用示例
Jul 26 PHP
PHP获取当前文件的父目录方法汇总
Jul 21 PHP
php 从指定数字中获取随机组合的简单方法(推荐)
Apr 05 PHP
学习thinkphp5.0验证类使用方法
Nov 16 PHP
PHP迭代器和生成器用法实例分析
Sep 28 PHP
解决thinkphp5未定义变量会抛出异常,页面错误,请稍后再试的问题
Oct 16 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
pw的一个放后门的方法分析
2007/10/08 PHP
mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的区别
2009/04/24 PHP
献给php初学者(入门学习经验谈)
2010/10/12 PHP
微博短链接算法php版本实现代码
2012/09/15 PHP
ThinkPHP2.0读取MSSQL提示Incorrect syntax near the keyword 'AS'的解决方法
2014/06/25 PHP
PHP7数组的底层实现示例
2019/08/25 PHP
thinkphp框架类库扩展操作示例
2019/11/26 PHP
php中Swoole的热更新实现代码实例
2021/03/04 PHP
Javascript 面向对象 重载
2010/05/13 Javascript
Javascript 倒计时源代码.(时.分.秒) 详细注释版
2011/05/09 Javascript
在标题栏显示新消息提示,很多公司项目中用到这个方法
2011/11/04 Javascript
jQuery实现给页面换肤的方法
2015/05/30 Javascript
BootStrap 智能表单实战系列(五) 表单依赖插件处理
2016/06/13 Javascript
聊聊JavaScript如何实现继承及特点
2017/04/07 Javascript
微信小程序--onShareAppMessage分享参数用处(页面分享)
2017/04/18 Javascript
JavaScript设计模式之单例模式简单实例教程
2018/07/02 Javascript
javascript闭包的使用之按钮切换功能
2018/08/30 Javascript
如何在vue中使用kindeditor富文本编辑器
2020/12/19 Vue.js
[35:34]Liquid vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python开发中module模块用法实例分析
2015/11/12 Python
用Python抢过年的火车票附源码
2015/12/07 Python
Django实现快速分页的方法实例
2017/10/22 Python
使用Python OpenCV为CNN增加图像样本的实现
2019/06/10 Python
完美解决python3.7 pip升级 拒绝访问问题
2019/07/12 Python
基于python实现语音录入识别代码实例
2020/01/17 Python
解决pycharm导入本地py文件时,模块下方出现红色波浪线的问题
2020/06/01 Python
CSS3+JavaScript实现炫酷呼吸效果的示例代码
2020/06/15 HTML / CSS
全球航班旅行搜索网站:Cheapflights
2017/05/19 全球购物
出口公司经理求职简历中的自我评价
2013/10/13 职场文书
暑假家长评语大全
2014/04/17 职场文书
医学求职信
2014/05/28 职场文书
党员自我剖析材料
2014/08/31 职场文书
党的群众路线教育实践活动个人整改措施落实情况
2014/11/04 职场文书
教师网络培训心得体会
2016/01/09 职场文书
解析原生JS getComputedStyle
2021/05/25 Javascript
Java实现HTML转为Word的示例代码
2022/06/28 Java/Android