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和ACCESS写聊天室(十)
Oct 09 PHP
php中批量替换文件名的实现代码
Jul 20 PHP
利用PHP生成静态HTML文档的原理
Oct 29 PHP
phpexcel导出excel的颜色和网页中的颜色显示不一致
Dec 11 PHP
分享8个最佳的代码片段在线测试网站
Jun 29 PHP
解析php防止form重复提交的方法
Jul 01 PHP
递归删除一个节点以及该节点下的所有节点示例
Mar 19 PHP
PHP中的traits简单使用实例
May 13 PHP
刷新PHP缓冲区为你的站点加速
Oct 10 PHP
php中mkdir()函数的权限问题分析
Sep 24 PHP
浅析PHP开发规范
Feb 05 PHP
ThinkPHP5.0 图片上传生成缩略图实例代码说明
Jun 20 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/12/05 PHP
php目录管理函数小结
2008/09/10 PHP
判断Keep-Alive模式的HTTP请求的结束的实现代码
2011/08/06 PHP
PHP将XML转数组过程详解
2013/11/13 PHP
PHP实现在线阅读PDF文件的方法
2015/06/17 PHP
php使用COPY函数更新配置文件的方法
2015/06/18 PHP
javascript重复绑定事件造成的后果说明
2013/03/02 Javascript
Javascript在IE和Firefox浏览器常见兼容性问题总结
2016/08/03 Javascript
JS实现的将html转为pdf功能【基于浏览器端插件jsPDF】
2018/02/06 Javascript
JS实现简单的文字无缝上下滚动功能示例
2019/06/22 Javascript
微信小程序webview组件交互,内联h5页面并网页实现微信支付实现解析
2019/08/16 Javascript
mpvue实现左侧导航与右侧内容的联动
2019/10/21 Javascript
js实现双人五子棋小游戏
2020/05/28 Javascript
Vant 在vue-cli 4.x中按需加载操作
2020/11/05 Javascript
[01:09:13]DOTA2-DPC中国联赛 正赛 CDEC vs XG BO3 第三场 1月19日
2021/03/11 DOTA
Python的装饰器使用详解
2017/06/26 Python
python自动发送测试报告邮件功能的实现
2019/01/22 Python
python调用其他文件函数或类的示例
2019/07/16 Python
python中的socket实现ftp客户端和服务器收发文件及md5加密文件
2020/04/01 Python
Python基于百度AI实现OCR文字识别
2020/04/02 Python
python实现小程序推送页面收录脚本
2020/04/20 Python
Python Dataframe常见索引方式详解
2020/05/27 Python
python 星号(*)的多种用途
2020/09/21 Python
使用PyCharm官方中文语言包汉化PyCharm
2020/11/18 Python
利用CSS3的transition属性实现滑动效果
2015/08/05 HTML / CSS
英国虚拟主机服务商:eUKhost
2016/08/16 全球购物
德国电子产品购物网站:TechInTheBasket德国
2018/12/07 全球购物
介绍一下HDLC(High-Level Data Link Control)高层数据链路协议
2012/01/21 面试题
实习生工作证明范本
2014/09/14 职场文书
向国旗敬礼活动总结
2014/09/27 职场文书
基层党员群众路线整改措施及努力方向
2014/10/28 职场文书
清明节扫墓活动总结
2015/02/09 职场文书
应届毕业生自荐信
2015/03/04 职场文书
不同意离婚上诉状
2015/05/23 职场文书
互联网的下一个风口:新的独角兽将诞生
2019/08/02 职场文书
Oracle11g r2 卸载干净重装的详细教程(亲测有效已重装过)
2021/06/04 Oracle