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 中include()与require()的对比
Oct 09 PHP
php MySQL与分页效率
Jun 04 PHP
PHP define函数的使用说明
Aug 27 PHP
php和js如何通过json互相传递数据相关问题探讨
Feb 26 PHP
简单实现限定phpmyadmin访问ip的方法
Mar 05 PHP
10 个经典PHP函数
Oct 17 PHP
php float不四舍五入截取浮点型字符串方法总结
Oct 28 PHP
php中socket的用法详解
Oct 24 PHP
php跨站攻击实例分析
Oct 28 PHP
PHP速成大法
Jan 30 PHP
php 利用array_slice函数获取随机数组或前几条数据
Sep 30 PHP
php实现简易计算器
Aug 28 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
德劲1107的电路分析与打磨
2021/03/02 无线电
织梦模板标记简介
2007/03/11 PHP
PHP实现异步调用方法研究与分享
2011/10/27 PHP
php获取字符串中各个字符出现次数的方法
2015/02/23 PHP
mouse_on_title.js
2006/08/25 Javascript
在视频前插入广告
2006/11/20 Javascript
Js获取事件对象代码
2010/08/05 Javascript
JavaScript中的apply()方法和call()方法使用介绍
2012/07/25 Javascript
js indexOf()定义和用法
2012/10/21 Javascript
jquery 元素控制(追加元素/追加内容)介绍及应用
2013/04/21 Javascript
js数组操作学习总结
2013/11/04 Javascript
JavaScript的Ext JS框架中的GridPanel组件使用指南
2016/05/21 Javascript
jQuery可见性过滤选择器用法示例
2016/09/09 Javascript
微信小程序 Canvas增强组件实例详解及源码分享
2017/01/04 Javascript
ECMAScript6 新特性范例大全
2017/03/24 Javascript
vue.js轮播图组件使用方法详解
2018/07/03 Javascript
vxe-table vue table 表格组件功能
2019/05/26 Javascript
微信小程序 轮播图实现原理及优化详解
2019/09/29 Javascript
微信小程序登陆注册功能的实现代码
2019/12/10 Javascript
Vue循环遍历选项赋值到对应控件的实现方法
2020/06/22 Javascript
[00:10]DOTA2全国高校联赛速递
2018/05/30 DOTA
[03:12]完美世界DOTA2联赛PWL DAY7集锦
2020/11/06 DOTA
浅谈Python中带_的变量或函数命名
2017/12/04 Python
简单实现python收发邮件功能
2018/01/05 Python
Python基于datetime或time模块分别获取当前时间戳的方法实例
2019/02/19 Python
python-numpy-指数分布实例详解
2019/12/07 Python
python 控制台单行刷新,多行刷新实例
2020/02/19 Python
Python PyQt5运行程序把输出信息展示到GUI图形界面上
2020/04/27 Python
Lou & Grey美国官网:主打舒适性面料服饰
2017/12/21 全球购物
《广玉兰》教学反思
2014/04/14 职场文书
寒假家长评语大全
2014/04/16 职场文书
推荐信格式范文
2014/05/09 职场文书
会计求职信怎么写
2015/03/20 职场文书
Nginx进程管理和重载原理详解
2021/04/22 Servers
正确使用MySQL update语句
2021/05/26 MySQL
分析SQL窗口函数之取值窗口函数
2022/04/21 Oracle