php按百分比生成缩略图的代码分享


Posted in PHP onMay 10, 2014

于是翻了一下手册,弄懂几个函数后自己写了一个简单的php生成缩略图的程序。没有用类,我觉得一个函数就能搞定,而且对于新手来说更容易去理解,从而可以帮助到更多的人。

支持按比分比缩略,支持按指定的长宽缩略,默认按百分比。程序中注释已经很详细了,如有问题可在下面留言,欢迎与我交流。

源码如下:

<?php /*
  * param ori_img 原图像的名称和路径
  * param new_img 生成图像的名称
  * param percent 表示按照原图的百分比进行缩略,此项为空时默认按50%
  * param width 指定缩略后的宽度
  * param height 指定缩略后的高度
  * 
  * 注:当 percent width height 都传入值的时候,且percent>0时,优先按照百分比进行缩略
  * by:https://3water.com 更多源码与你分享
  * 温馨提示:使用此功能要在php.ini中开启 gd2
  *
  **/
 function makeThumb($ori_img, $new_img, $percent=50, $width=0, $height=0){
  $original = getimagesize($ori_img); //得到图片的信息,可以print_r($original)发现它就是一个数组
  //$original[2]是图片类型,其中1表示gif、2表示jpg、3表示png
  switch($original[2]){
   case 1 : $s_original = imagecreatefromgif($ori_img);
    break;
   case 2 : $s_original = imagecreatefromjpeg($ori_img);
    break;
   case 3 : $s_original = imagecreatefrompng($ori_img);
    break;
  }
  if($percent > 0){
   $width = $original[0] * $percent / 100;
   $width = ($width > 0) ? $width : 1;
   $height = $original[1] * $percent / 100;
   $height = ($height > 0) ? $height : 1;
  }
  //创建一个真彩的画布
  $canvas = imagecreatetruecolor($width,$height);
  imagecopyresized($canvas, $s_original, 0, 0, 0, 0, $width, $height, $original[0], $original[1]);
  //header("Content-type:image/jpeg");
  //imagejpeg($canvas); //向浏览器输出图片
  $loop = imagejpeg($canvas, $new_img); //生成新的图片
  if($loop){
   echo "OK!<br/>";
  }
 }
 makeThumb("bhsj.jpg","suolue1.jpg",15,0,0); //生成原图15%的缩略图
 makeThumb("bhsj.jpg","suolue2.jpg",0,200,120); //生成宽为100px,高为60px的缩略图
 makeThumb("bhsj.jpg","suolue3.jpg",15,200,120); //生成原图15%的缩略图(参数都填时,百分率优先级大)
?>

 

PHP 相关文章推荐
php URL验证正则表达式
Jul 19 PHP
PHP5权威编程阅读学习笔记 附电子书下载
Jul 05 PHP
64位windows系统下安装Memcache缓存
Dec 06 PHP
搭建Vim为自定义的PHP开发工具的一些技巧
Dec 11 PHP
PHP计算日期相差天数实例分析
Feb 23 PHP
解析PHP的Yii框架中cookie和session功能的相关操作
Mar 17 PHP
简单理解PHP的面向对象编程方式
May 17 PHP
PHP 数组基本操作方法详解
Jun 17 PHP
PHP验证码类ValidateCode解析
Jan 07 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
Jul 19 PHP
PHP实现简单的模板引擎功能示例
Sep 02 PHP
PHP convert_uudecode()函数讲解
Feb 14 PHP
PHP数字字符串左侧补0、字符串填充和自动补齐的几种方法
May 10 #PHP
php下获取http状态的实现代码
May 09 #PHP
PHP防范SQL注入的具体方法详解(测试通过)
May 09 #PHP
简单的php新闻发布系统教程
May 09 #PHP
php下载文件源代码(强制任意文件格式下载)
May 09 #PHP
php中curl、fsocket、file_get_content三个函数的使用比较
May 09 #PHP
win7计划任务定时执行PHP脚本设置图解
May 09 #PHP
You might like
简单的用PHP编写的导航条程序
2006/10/09 PHP
PHP类中Static方法效率测试代码
2010/10/17 PHP
phpmyadmin打开很慢的解决方法
2014/04/21 PHP
php实现编辑和保存文件的方法
2015/07/20 PHP
PHP实现的权重算法示例【可用于游戏根据权限来随机物品】
2019/02/15 PHP
PHP自动载入类文件函数__autoload的使用方法
2019/03/25 PHP
php apache开启跨域模式过程详解
2019/07/08 PHP
一个基于jquery的文本框记数器
2012/09/19 Javascript
jQuery 数据缓存模块进化史详细介绍
2012/11/19 Javascript
浅谈JavaScript实现面向对象中的类
2014/12/09 Javascript
jQuery实现的简单百分比进度条效果示例
2016/08/01 Javascript
基于jQuery的select下拉框选择触发事件实例分析
2016/11/18 Javascript
微信小程序 定位到当前城市实现实例代码
2017/02/23 Javascript
Angularjs使用指令做表单校验的方法
2017/03/31 Javascript
nodejs 图片预览和上传的示例代码
2017/09/30 NodeJs
详解如何使用webpack在vue项目中写jsx语法
2017/11/08 Javascript
js 数组详细操作方法及解析合集
2018/06/01 Javascript
Vuejs+vue-router打包+Nginx配置的实例
2018/09/20 Javascript
Vue实现手机扫描二维码预览页面效果
2020/05/28 Javascript
微信小程序利用button控制条件标签的变量问题
2020/03/15 Javascript
JavaScript中继承原理与用法实例入门
2020/05/09 Javascript
Python 关于反射和类的特殊成员方法
2017/09/14 Python
python reduce 函数使用详解
2017/12/05 Python
分析Python读取文件时的路径问题
2018/02/11 Python
python3爬虫获取html内容及各属性值的方法
2018/12/17 Python
python多线程http压力测试脚本
2019/06/25 Python
Keras框架中的epoch、bacth、batch size、iteration使用介绍
2020/06/10 Python
python实现斗地主分牌洗牌
2020/06/22 Python
美国彩妆品牌:Coastal Scents
2017/04/01 全球购物
数学系个人求职信范文
2014/01/30 职场文书
党校培训自我鉴定范文
2014/03/20 职场文书
2016年寒假社会实践活动总结
2015/03/27 职场文书
2016年植树节红领巾广播稿
2015/12/17 职场文书
《揠苗助长》教学反思
2016/02/20 职场文书
详解Redis实现限流的三种方式
2021/04/27 Redis
详解thinkphp的Auth类认证
2021/05/28 PHP