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 相关文章推荐
动易数据转成dedecms的php程序
Apr 07 PHP
PHP 各种排序算法实现代码
Aug 20 PHP
ThinkPHP里用U方法调用js文件实例
Jun 18 PHP
一个简单至极的PHP缓存类代码
Oct 23 PHP
Yii2超好用的日期和时间组件(值得收藏)
May 05 PHP
分享php多功能图片处理类
May 15 PHP
3种方法轻松处理php开发中emoji表情的问题
Jul 18 PHP
php array_key_exists() 与 isset() 的区别
Oct 24 PHP
利用 fsockopen() 函数开放端口扫描器的实例
Aug 19 PHP
thinkphp5.1 文件引入路径问题及注意事项
Jun 13 PHP
php获取目录下所有文件及目录(多种方法)(推荐)
May 14 PHP
PHP设计模式(八)装饰器模式Decorator实例详解【结构型】
May 02 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 设计模式之观察者模式介绍
2012/02/22 PHP
PHP与javascript实现变量交互的示例代码
2013/07/23 PHP
php flush无效,IIS7下php实时输出的方法
2016/08/25 PHP
php 生成加密公钥加密私钥实例详解
2017/06/16 PHP
laravel 5.5 关闭token的3种实现方式
2019/10/24 PHP
一个分享按钮的插件使用介绍(可扩展,内附开发制作流程)
2011/09/19 Javascript
利用JS实现浏览器的title闪烁
2013/07/08 Javascript
Javascript中使用A标签获取当前目录的绝对路径方法
2015/03/02 Javascript
Vue.js每天必学之计算属性computed与$watch
2016/09/05 Javascript
JavaScript箭头(arrow)函数详解
2017/06/04 Javascript
浅谈Angular HttpClient简单入门
2018/05/04 Javascript
vue+echarts实现动态绘制图表及异步加载数据的方法
2018/10/17 Javascript
在Vue中使用HOC模式的实现
2020/08/23 Javascript
Python如何快速上手? 快速掌握一门新语言的方法
2017/11/14 Python
django数据库migrate失败的解决方法解析
2018/02/08 Python
python smtplib模块实现发送邮件带附件sendmail
2018/05/22 Python
python 对dataframe下面的值进行大规模赋值方法
2018/06/09 Python
djang常用查询SQL语句的使用代码
2019/02/15 Python
python之信息加密题目详解
2019/06/26 Python
python粘包问题及socket套接字编程详解
2019/06/29 Python
pandas基于时间序列的固定时间间隔求均值的方法
2019/07/04 Python
python3.7环境下安装Anaconda的教程图解
2019/09/10 Python
python 使用多线程创建一个Buffer缓存器的实现思路
2020/07/02 Python
详解pandas apply 并行处理的几种方法
2021/02/24 Python
css3打造一款漂亮的卡哇伊按钮
2013/03/20 HTML / CSS
CSS3实现网站商品展示效果图
2020/01/18 HTML / CSS
html5的新玩法——语音搜索
2013/01/03 HTML / CSS
美国汽车轮胎和轮毂销售网站:Tire Rack
2018/01/11 全球购物
函数指针的定义是什么
2016/08/14 面试题
公司董事长职责
2013/12/12 职场文书
爱国演讲稿500字
2014/05/04 职场文书
师范生求职自荐信
2014/06/14 职场文书
体育教师个人总结
2015/02/09 职场文书
人事聘任通知
2015/04/21 职场文书
小学中队委竞选稿
2015/11/20 职场文书
Python Matplotlib绘制两个Y轴图像
2022/04/13 Python