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 相关文章推荐
PR值查询 | PageRank 查询
Dec 20 PHP
PHP实现MySQL更新记录的代码
Jun 07 PHP
PHP+MYSQL 出现乱码的解决方法
Aug 08 PHP
php 友好URL的实现(吐血推荐)
Oct 04 PHP
PHPMYADMIN 简明安装教程 推荐
Mar 07 PHP
PHP中VC6、VC9、TS、NTS版本的区别与用法详解
Oct 26 PHP
PHP中使用hidef扩展代替define提高性能
Apr 09 PHP
基于PHP给大家讲解防刷票的一些技巧
Nov 18 PHP
Thinkphp整合微信支付功能
Dec 14 PHP
golang实现php里的serialize()和unserialize()序列和反序列方法详解
Oct 30 PHP
使用Laravel中的查询构造器实现增删改查功能
Sep 03 PHP
PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
Dec 20 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中COOKIES使用示例
2015/07/26 PHP
抛弃 PHP 代价太高
2016/04/26 PHP
php 防止表单重复提交两种实现方法
2016/11/03 PHP
PHP Laravel中的Trait使用方法
2019/01/20 PHP
PHP中$GLOBALS与global的区别详解
2019/03/21 PHP
解密效果
2006/06/23 Javascript
Javascript 中的 &amp;&amp; 和 || 使用小结
2010/04/25 Javascript
JS文本获得焦点清除文本文字的示例代码
2014/01/13 Javascript
对于Form表单reset方法的新认识
2014/03/05 Javascript
jquery判断浏览器后退时候弹出消息的方法
2014/08/11 Javascript
JavaScript中判断页面关闭、页面刷新的实现代码
2014/08/27 Javascript
js实现按钮加背景图片常用方法
2014/11/01 Javascript
基于JS判断iframe是否加载成功的方法(多种浏览器)
2016/05/13 Javascript
jquery.form.js框架实现文件上传功能案例解析(springmvc)
2016/05/26 Javascript
总结在前端排序中遇到的问题
2016/07/19 Javascript
激动人心的 Angular HttpClient的源码解析
2017/07/10 Javascript
JavaScript实现二维坐标点排序效果
2017/07/18 Javascript
前端主流框架vue学习笔记第二篇
2017/07/26 Javascript
使用vue-aplayer插件时出现的问题的解决
2018/03/02 Javascript
详解vue中axios请求的封装
2019/04/08 Javascript
webpack的pitching loader详解
2019/09/23 Javascript
JavaScript编码小技巧分享
2020/09/17 Javascript
django传值给模板, 再用JS接收并进行操作的实例
2018/05/28 Python
使用Python自动化破解自定义字体混淆信息的方法实例
2019/02/13 Python
python按修改时间顺序排列文件的实例代码
2019/07/25 Python
win10下python3.8的PIL库安装过程
2020/06/08 Python
pycharm使用技巧之自动调整代码格式总结
2020/11/04 Python
意大利会呼吸的鞋:Geox健乐士
2017/02/12 全球购物
viagogo意大利票务平台:演唱会、体育比赛、戏剧门票
2018/01/26 全球购物
2014年创先争优工作总结
2014/12/11 职场文书
暑期实践个人总结
2015/03/06 职场文书
我在伊朗长大观后感
2015/06/16 职场文书
傲慢与偏见读书笔记
2015/06/29 职场文书
SpringBoot+Vue+JWT的前后端分离登录认证详细步骤
2021/09/25 Java/Android
继承Win10缺点!教你关闭Win11烦人的网络搜索
2021/11/23 数码科技
Sentry的安装、配置、使用教程(Sentry日志手机系统)
2022/07/23 Python