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 Smarty初体验二 获取配置信息
Aug 08 PHP
php数组函数序列之next() - 移动数组内部指针到下一个元素的位置,并返回该元素值
Oct 31 PHP
SESSION信息保存在哪个文件目录下以及能够用来保存什么类型的数据
Jun 17 PHP
php缓冲 output_buffering的使用详解
Jun 13 PHP
浅析SVN常见问题及解决方法
Jun 21 PHP
php正则取img标记中任意属性(正则替换去掉或改变图片img标记中的任意属性)
Aug 13 PHP
dedecms中使用php语句指南
Nov 13 PHP
php+xml编程之xpath的应用实例
Jan 24 PHP
thinkphp多层MVC用法分析
Dec 30 PHP
浅谈PHP eval()函数定义和用法
Jun 21 PHP
PHP+AJAX 投票器功能
Nov 11 PHP
PHP pthreads v3使用中的一些坑和注意点分析
Feb 21 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错误Parse error: syntax error, unexpected end of file in test.php on line 12解决方法
2014/06/23 PHP
php中getservbyport与getservbyname函数用法实例
2014/11/18 PHP
制作安全性高的PHP网站的几个实用要点
2014/12/30 PHP
使图片旋转的3种解决方案
2013/11/21 Javascript
js 对小数加法精度处理示例说明
2013/12/27 Javascript
禁用Enter键表单自动提交实现代码
2014/05/22 Javascript
JavaScript字符串对象charAt方法入门实例(用于取得指定位置的字符)
2014/10/17 Javascript
NodeJS学习笔记之Connect中间件应用实例
2015/01/27 NodeJs
基于jquery实现表格内容筛选功能实例解析
2016/05/09 Javascript
Vue.js 父子组件通讯开发实例
2016/09/06 Javascript
详解JavaScript的闭包、IIFE、apply、函数与对象
2016/12/21 Javascript
JavaScript的for循环中嵌套一个点击事件的问题解决
2017/03/03 Javascript
JS实现的简单拖拽功能示例
2017/03/13 Javascript
Angular2开发——组件规划篇
2017/03/28 Javascript
JavaScript装饰器函数(Decorator)实例详解
2017/03/30 Javascript
详解vue-router基本使用
2017/04/18 Javascript
ES6正则的扩展实例详解
2017/04/25 Javascript
jQuery获取随机颜色的实例代码
2018/05/21 jQuery
Vue 中axios配置实例详解
2018/07/27 Javascript
在vue中v-bind使用三目运算符绑定class的实例
2018/09/29 Javascript
angular2 组件之间通过service互相传递的实例
2018/09/30 Javascript
js 获取本周、上周、本月、上月、本季度、上季度的开始结束日期
2020/02/01 Javascript
Vue+Vuex实现自动登录的知识点详解
2020/03/04 Javascript
用Python操作字符串之rindex()方法的使用
2015/05/19 Python
Python可变参数函数用法实例
2015/07/07 Python
Python基础练习之用户登录实现代码分享
2017/11/08 Python
Python mutiprocessing多线程池pool操作示例
2019/01/30 Python
利用Python+阿里云实现DDNS动态域名解析的方法
2019/04/01 Python
python rolling regression. 使用 Python 实现滚动回归操作
2020/06/08 Python
SheIn沙特阿拉伯:女装在线
2020/03/23 全球购物
升学宴主持词
2014/04/02 职场文书
2015年入党决心书
2015/02/05 职场文书
2015年业务工作总结范文
2015/04/10 职场文书
Python网络编程之ZeroMQ知识总结
2021/04/25 Python
Python干货实战之八音符酱小游戏全过程详解
2021/10/24 Python
MySQL如何使备份得数据保持一致
2022/05/02 MySQL