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 相关文章推荐
第六节 访问属性和方法 [6]
Oct 09 PHP
PHP print类函数使用总结
Jun 25 PHP
php 数组的一个悲剧?
May 11 PHP
php二维数组用键名分组相加实例函数
Nov 06 PHP
CodeIgniter基本配置详细介绍
Nov 12 PHP
PHP 快速排序算法详解
Nov 10 PHP
Yii实现多数据库主从读写分离的方法
Dec 29 PHP
PHP实现通过Luhn算法校验信用卡卡号是否有效
Mar 23 PHP
THINKPHP截取中文字符串函数实例代码
Mar 20 PHP
php实现留言板功能(会话控制)
May 23 PHP
PHP使用 Pear 进行安装和卸载包的方法详解
Jul 08 PHP
使用Laravel中的查询构造器实现增删改查功能
Sep 03 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时间戳使用实例代码
2008/06/07 PHP
php获取根域名方法汇总
2014/10/28 PHP
Windows平台实现PHP连接SQL Server2008的方法
2017/07/26 PHP
php实现的顺序线性表示例
2019/05/04 PHP
js 提交和设置表单的值
2008/12/19 Javascript
jquery 双色表格实现代码
2009/12/08 Javascript
对字符串进行HTML编码和解码的JavaScript函数
2010/02/01 Javascript
Javascript页面添加到收藏夹的简单方法
2013/08/07 Javascript
Javascript浅谈之this
2013/12/17 Javascript
登陆成功后自动计算秒数执行跳转
2014/01/23 Javascript
jQuery提示效果代码分享
2014/11/20 Javascript
jQuery背景插件backstretch使用指南
2015/04/21 Javascript
HTML页面,测试JS对C函数的调用简单实例
2016/08/09 Javascript
ES6深入理解之“let”能替代”var“吗?
2017/06/28 Javascript
详解使用PM2管理nodejs进程
2017/10/24 NodeJs
JQuery搜索框自动补全(模糊匹配)功能实现示例
2019/01/08 jQuery
Node.JS获取GET,POST数据之queryString模块使用方法详解
2020/02/06 Javascript
用yum安装MySQLdb模块的步骤方法
2016/12/15 Python
浅谈使用Python变量时要避免的3个错误
2017/10/30 Python
Python面向对象编程之继承与多态详解
2018/01/16 Python
Zookeeper接口kazoo实例解析
2018/01/22 Python
django 多数据库配置教程
2018/05/30 Python
CSS3教程(3):border-color网页边框色彩
2009/04/02 HTML / CSS
HTML5的结构和语义(1):前言
2008/10/17 HTML / CSS
印尼值得信赖的在线交易网站:Bukalapak
2019/03/11 全球购物
Hotels.com日本:国外和海外住宿,酒店预订
2019/12/13 全球购物
技校学生个人职业生涯规划范文
2014/03/03 职场文书
大学生党员个人对照检查材料范文
2014/09/25 职场文书
公务员考察材料范文
2014/12/23 职场文书
小学优秀学生评语
2014/12/29 职场文书
工商局个人工作总结
2015/03/03 职场文书
2015大学生求职信范文
2015/03/20 职场文书
使用Pytorch训练two-head网络的操作
2021/05/28 Python
Redis字典实现、Hash键冲突及渐进式rehash详解
2021/09/04 Redis
我的收音机情缘
2022/04/05 无线电
Fluentd搭建日志收集服务
2022/09/23 Servers