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 相关文章推荐
第四节 构造函数和析构函数 [4]
Oct 09 PHP
PHP+AJAX实现无刷新注册(带用户名实时检测)
Jan 02 PHP
php 页面执行时间计算代码
Dec 04 PHP
PHP垃圾回收机制引用计数器概念分析
Jun 24 PHP
php 过滤英文标点符号及过滤中文标点符号代码
Jun 12 PHP
php正则匹配html中带class的div并选取其中内容的方法
Jan 13 PHP
PHP实现linux命令tail -f
Feb 22 PHP
Laravel SQL语句记录方式(推荐)
May 26 PHP
PHP sleep()函数, usleep()函数
Aug 25 PHP
php中分页及SqlHelper类用法实例
Jan 12 PHP
Ajax请求PHP后台接口返回信息的实例代码
Aug 21 PHP
laravel中数据显示方法(默认值和下拉option默认选中)
Oct 11 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在线打包程序源码
2008/07/27 PHP
一个PHP验证码类代码分享(已封装成类)
2011/07/17 PHP
php cli 小技巧
2013/06/03 PHP
解析php session_set_save_handler 函数的用法(mysql)
2013/06/29 PHP
php实现按天数、星期、月份查询的搜索框
2016/05/02 PHP
thinkPHP+ajax实现统计页面pv浏览量的方法
2017/03/15 PHP
User Scripts: Video Download by User Scripts
2007/05/14 Javascript
js 刷新页面的代码小结 推荐
2010/04/02 Javascript
setinterval()与clearInterval()JS函数的调用方法
2015/01/21 Javascript
JavaScript中获取Radio被选中的值
2015/11/11 Javascript
AngularJS Bootstrap详细介绍及实例代码
2016/07/28 Javascript
两行代码轻松搞定JavaScript日期验证
2016/08/03 Javascript
jQuery中select与datalist制作下拉菜单时的区别浅析
2016/12/30 Javascript
解析jquery easyui tree异步加载子节点问题
2017/03/08 Javascript
nodejs入门教程六:express模块用法示例
2017/04/24 NodeJs
详解Vue.js之视图和数据的双向绑定(v-model)
2017/06/23 Javascript
react-native 封装选择弹出框示例(试用ios&amp;android)
2017/07/11 Javascript
vue使用xe-utils函数库的具体方法
2018/03/06 Javascript
JS实现盒子跟着鼠标移动及键盘方向键控制盒子移动效果示例
2019/01/29 Javascript
vue递归组件实战之简单树形控件实例代码
2019/08/27 Javascript
微信小程序开发(一):服务器获取数据列表渲染操作示例
2020/06/01 Javascript
[20:39]DOTA2-DPC中国联赛 正赛开幕式 1月18日
2021/03/11 DOTA
Python fileinput模块使用介绍
2014/11/30 Python
Pandas 重塑(stack)和轴向旋转(pivot)的实现
2019/07/22 Python
Django Aggregation聚合使用方法解析
2019/08/01 Python
python编写简单端口扫描器
2019/09/04 Python
python GUI库图形界面开发之PyQt5表格控件QTableView详细使用方法与实例
2020/03/01 Python
django项目中新增app的2种实现方法
2020/04/01 Python
Python jieba库分词模式实例用法
2021/01/13 Python
HTML5中input[type='date']自定义样式与日历校验功能的实现代码
2017/07/11 HTML / CSS
英国广泛的照明产品网站:Lights4living
2018/01/28 全球购物
偷看我的初中毕业鉴定
2014/01/29 职场文书
2016关于读书活动的心得体会
2016/01/14 职场文书
关于做家务的心得体会
2016/01/23 职场文书
幼儿园教学反思范文
2016/03/02 职场文书
「魔导具师妲莉亚永不妥协~从今天开始的自由职人生活~」1、2卷发售宣传CM公开
2022/03/21 日漫