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 ajax 分页类代码
Nov 13 PHP
php下连接mssql2005的代码
Jan 17 PHP
Php Ctemplate引擎开发相关内容
Mar 03 PHP
PHP5中Cookie与 Session使用详解
Apr 30 PHP
浅谈php安全性需要注意的几点事项
Jul 17 PHP
php结合js实现点击超链接执行删除确认操作
Oct 31 PHP
PHP+Mysql+jQuery实现发布微博程序 php篇
Oct 15 PHP
php防止sql注入的方法详解
Feb 20 PHP
浅谈ThinkPHP5.0版本和ThinkPHP3.2版本的区别
Jun 17 PHP
laravel 中如何使用ajax和vue总结
Aug 16 PHP
PHP实现非阻塞模式的方法分析
Jul 26 PHP
php+laravel 扫码二维码签到功能
May 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
php实现单链表的实例代码
2013/03/22 PHP
discuz目录文件资料汇总
2014/12/30 PHP
php计划任务之验证是否有多个进程调用同一个job的方法
2015/12/07 PHP
php session的应用详细介绍
2017/03/22 PHP
PHP ADODB生成下拉列表框功能示例
2018/05/29 PHP
PHP检查文件是否存在,不存在自动创建及读取文件内容操作示例
2020/01/23 PHP
JS OOP包机制,类创建的方法定义
2009/11/02 Javascript
Js 刷新框架页的代码
2010/04/13 Javascript
javascript 获取HTML DOM父、子、临近节点
2014/06/16 Javascript
使用Function.apply()的参数数组化来提高 JavaScript程序性能的技巧
2015/12/23 Javascript
JavaScript实现打开链接页面的方式汇总
2016/06/02 Javascript
简单理解vue中实例属性vm.$els
2016/12/01 Javascript
nodejs+express搭建多人聊天室步骤
2018/02/12 NodeJs
微信小程序实现底部弹出模态框
2020/11/18 Javascript
[00:35]DOTA2上海特级锦标赛 MVP.Phx战队宣传片
2016/03/04 DOTA
python实现TCP服务器端与客户端的方法详解
2015/04/30 Python
python中利用队列asyncio.Queue进行通讯详解
2017/09/10 Python
python opencv之SURF算法示例
2018/02/24 Python
python自动化测试之异常及日志操作实例分析
2019/11/09 Python
python实发邮件实例详解
2019/11/11 Python
Pytorch实现神经网络的分类方式
2020/01/08 Python
10个python爬虫入门基础代码实例 + 1个简单的python爬虫完整实例
2020/12/16 Python
英国品牌男装折扣网站:Brown Bag
2018/03/08 全球购物
医学专业五年以上个人求职信
2013/12/03 职场文书
初中美术教学反思
2014/01/29 职场文书
材料专业毕业生求职信
2014/02/26 职场文书
机关节能减排实施方案
2014/03/17 职场文书
请假条格式范文
2014/04/10 职场文书
常务副总经理岗位职责
2014/04/12 职场文书
请客吃饭开场白
2015/06/01 职场文书
爱国电影观后感
2015/06/19 职场文书
python 实现图与图之间的间距调整subplots_adjust
2021/05/21 Python
Python 居然可以在 Excel 中画画你知道吗
2022/02/15 Python
vue中使用mockjs配置和使用方式
2022/04/06 Vue.js
关于windows server 2012 DC 环境 重启后蓝屏代码:0xc00002e2的问题
2022/05/25 Servers
JS函数式编程实现XDM一
2022/06/16 Javascript