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 相关文章推荐
在windows iis5下安装php4.0+mysql之我见
Oct 09 PHP
Apache下禁止php文件被直接访问的解决方案
Apr 25 PHP
php防止sql注入之过滤分页参数实例
Nov 03 PHP
php设置静态内容缓存时间的方法
Dec 01 PHP
PHP实现的下载远程图片自定义函数分享
Jan 28 PHP
php上传图片并压缩的实现方法
Dec 22 PHP
Zend Framework教程之模型Model基本规则和使用方法
Mar 04 PHP
Yii2框架自定义类统一处理url操作示例
May 25 PHP
laravel框架上传图片实现实时预览功能
Oct 14 PHP
PHP设计模式之建造者模式(Builder)原理与用法案例详解
Dec 12 PHP
一文看懂PHP进程管理器php-fpm
Jun 01 PHP
MacOS下PHP7.1升级到PHP7.4.15的方法
Feb 22 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/06/07 PHP
php curl 获取https请求的2种方法
2015/04/27 PHP
yii使用activeFileField控件实现上传文件与图片的方法
2015/12/28 PHP
Laravel5.* 打印出执行的sql语句的方法
2017/07/24 PHP
Laravel接收前端ajax传来的数据的实例代码
2017/07/20 PHP
PHP7如何开启Opcode打造强悍性能详解
2018/05/11 PHP
JavaScript(JS) 压缩 / 混淆 / 格式化 批处理工具
2010/12/10 Javascript
JavaScript高级程序设计(第3版)学习笔记6 初识js对象
2012/10/11 Javascript
javascript 数组排序函数sort和reverse使用介绍
2013/11/21 Javascript
js使用数组判断提交数据是否存在相同数据
2013/11/27 Javascript
可插入图片的TEXT文本框
2013/12/27 Javascript
js中window.open()的所有参数详细解析
2014/01/09 Javascript
一个简单的jQuery插件ajaxfileupload.js实现ajax上传文件例子
2014/06/26 Javascript
js获取滚动距离的方法
2015/05/30 Javascript
jquery限定文本框只能输入数字(整数和小数)
2016/01/08 Javascript
基于ant design日期控件使用_仅月份的操作
2020/10/27 Javascript
[01:08]2014DOTA2展望TI 剑指西雅图LGD战队专访
2014/06/30 DOTA
[14:50]2018DOTA2亚洲邀请赛开幕式
2018/04/03 DOTA
python 性能优化方法小结
2017/03/31 Python
python 实现判断ip连通性的方法总结
2018/04/22 Python
详解python的sorted函数对字典按key排序和按value排序
2018/08/10 Python
利用Django-environ如何区分不同环境
2018/08/26 Python
Python语言检测模块langid和langdetect的使用实例
2019/02/19 Python
python时间time模块处理大全
2020/10/25 Python
HTML5 canvas基本绘图之绘制阴影效果
2016/06/27 HTML / CSS
For Art’s Sake官网:手工制作的奢华眼镜
2018/12/15 全球购物
自行车租赁公司创业计划书
2014/01/28 职场文书
网管求职信
2014/03/03 职场文书
重阳节标语大全
2014/10/07 职场文书
广告业务员岗位职责
2015/02/13 职场文书
公司管理制度范本
2015/08/03 职场文书
交通安全教育心得体会
2016/01/15 职场文书
百善孝为先:关于孝道的经典语录
2019/10/18 职场文书
Win10 heic文件怎么打开 ? Win10 heic文件打开教程
2022/04/06 数码科技
浅谈MySql update会锁定哪些范围的数据
2022/06/25 MySQL
Win11无法安装更新补丁KB3045316怎么办 附KB3045316补丁修复教程
2022/08/14 数码科技