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动态变静态原理
Nov 25 PHP
PHP与MySQL开发中页面乱码的产生与解决
Mar 27 PHP
PHP CURL获取cookies模拟登录的方法
Nov 04 PHP
php采用curl访问域名返回405 method not allowed提示的解决方法
Jun 26 PHP
安装ImageMagick出现error while loading shared libraries的解决方法
Sep 23 PHP
PHP数组操作类实例
Jul 11 PHP
WordPress开发中自定义菜单的相关PHP函数使用简介
Jan 05 PHP
详解Laravel视图间共享数据与视图Composer
Aug 04 PHP
PHP制作登录异常ip检测功能的实例代码
Nov 16 PHP
在IIS下安装PHP扩展的方法(超简单)
Apr 10 PHP
laravel高级的Join语法详解以及使用Join多个条件
Oct 16 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
php检测useragent版本示例
2014/03/24 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(四)
2014/06/23 PHP
Jquery 基础学习笔记之文档处理
2009/05/29 Javascript
JavaScript 异步调用框架 (Part 1 - 问题 &amp; 场景)
2009/08/03 Javascript
jquery多浏览器捕捉回车事件代码
2010/06/22 Javascript
window.showModalDialog参数传递中含有特殊字符的处理方法
2013/06/06 Javascript
js日期相关函数总结分享
2013/10/15 Javascript
加随机数引入脚本不让浏览器读取缓存
2014/09/04 Javascript
JavaScript实现表格快速变色效果代码
2015/08/19 Javascript
全面详细的jQuery常见开发技巧手册
2016/02/21 Javascript
ES6正则表达式的一些新功能总结
2017/05/09 Javascript
微信小程序实现点击返回顶层的方法
2017/07/12 Javascript
Angular中封装fancyBox(图片预览)遇到问题小结
2017/09/01 Javascript
详解CommonJS和ES6模块循环加载处理的区别
2018/12/26 Javascript
vue轻量级框架无法获取到vue对象解决方法
2019/05/12 Javascript
Js逆向实现滑动验证码图片还原的示例代码
2020/03/10 Javascript
Python bsddb模块操作Berkeley DB数据库介绍
2015/04/08 Python
Python中的anydbm模版和shelve模版使用指南
2015/07/09 Python
Python数据结构之哈夫曼树定义与使用方法示例
2018/04/22 Python
python爬虫 execjs安装配置及使用
2019/07/30 Python
纽约服装和生活方式品牌:Saturdays NYC
2017/08/13 全球购物
加拿大约会网站:EliteSingles.ca
2018/01/12 全球购物
美国购买韩国护肤和美容产品网站:Althea Korea
2020/11/16 全球购物
过滤器的用法
2013/10/08 面试题
求职信的七个关键技巧
2014/02/05 职场文书
大学新生军训感言
2014/02/25 职场文书
球队口号
2014/06/18 职场文书
考试作弊检讨
2015/01/27 职场文书
岳麓书院导游词
2015/02/03 职场文书
2016年毕业实习心得体会范文
2015/10/09 职场文书
承诺书应该怎么写?
2019/09/10 职场文书
快速学习Oracle触发器和游标
2021/06/30 Oracle
MySQL 如何限制一张表的记录数
2021/09/14 MySQL
MySQL悲观锁与乐观锁的实现方案
2021/11/02 MySQL
mysql5.7的安装及Navicate长久免费使用的实现过程
2021/11/17 MySQL
Python IO文件管理的具体使用
2022/03/20 Python