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和XSL stylesheets转换XML文档
Oct 09 PHP
PHP中一个控制字符串输出的函数
Oct 09 PHP
php数组函数序列之array_splice() - 在数组任意位置插入元素
Nov 07 PHP
PHP设置一边执行一边输出结果的代码
Sep 30 PHP
PHP include任意文件或URL介绍
Apr 29 PHP
PHP mkdir()无写权限的问题解决方法
Jun 19 PHP
CI框架无限级分类+递归的实现代码
Nov 01 PHP
ThinkPHP框架表单验证操作方法
Jul 19 PHP
php mysql数据库操作类(实例讲解)
Aug 06 PHP
ajax+php实现无刷新验证手机号的实例
Dec 22 PHP
ThinkPHP中图片按比例切割的代码实例
Mar 08 PHP
Laravel开启跨域请求的方法
Oct 13 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
PHILIPS L4X25T电路分析和打理
2021/03/02 无线电
定义php常量的详解
2013/06/09 PHP
php下载远程大文件(获取远程文件大小)的实例
2017/06/17 PHP
php文件上传原理与实现方法详解
2019/12/20 PHP
鼠标移动到一张图片时变为另一张图片
2006/12/05 Javascript
Javascript 获取链接(url)参数的方法
2009/02/15 Javascript
Javascript判断对象是否相等实现代码
2013/03/18 Javascript
jquery fancybox ie6不显示关闭按钮的解决办法
2013/12/25 Javascript
利用jQuary实现文字浮动提示效果示例代码
2013/12/26 Javascript
JavaScript Array对象扩展indexOf()方法
2014/05/09 Javascript
node.js中的fs.fsyncSync方法使用说明
2014/12/15 Javascript
js学习总结之DOM2兼容处理顺序问题的解决方法
2017/07/27 Javascript
vue 实现类似淘宝星级评分的示例
2018/03/01 Javascript
JavaScript中arguments和this对象用法分析
2018/08/08 Javascript
webpack结合express实现自动刷新的方法
2019/05/07 Javascript
vue动态渲染svg、添加点击事件的实现
2020/03/13 Javascript
Python生成器定义与简单用法实例分析
2018/04/30 Python
Django model反向关联名称的方法
2018/12/15 Python
python tkinter库实现气泡屏保和锁屏
2019/07/29 Python
python用quad、dblquad实现一维二维积分的实例详解
2019/11/20 Python
python3 webp转gif格式的实现示例
2019/12/10 Python
python基于property()函数定义属性
2020/01/22 Python
Python如何使用OS模块调用cmd
2020/02/27 Python
keras和tensorflow使用fit_generator 批次训练操作
2020/07/03 Python
澳大利亚领先的在线葡萄酒零售商:Get Wines Direct
2018/03/27 全球购物
营业员个人总结的自我评价
2013/10/25 职场文书
企业消防安全制度
2014/02/02 职场文书
党员自我批评与反省材料
2014/02/10 职场文书
车队司机自我鉴定
2014/03/02 职场文书
母校寄语大全
2014/04/10 职场文书
学习三严三实对照检查材料思想汇报
2014/09/22 职场文书
授权委托书协议书
2014/10/16 职场文书
2014年高中班主任工作总结
2014/11/08 职场文书
2014年财政工作总结
2014/12/10 职场文书
行政处罚决定书
2015/06/24 职场文书
婚礼长辈答谢词
2015/09/29 职场文书