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数组
Oct 09 PHP
一个php Mysql类 可以参考学习熟悉下
Jun 21 PHP
php中防止恶意刷新页面的代码小结
Oct 31 PHP
CI框架源码阅读,系统常量文件constants.php的配置
Feb 28 PHP
基于php-fpm 参数的深入理解
Jun 03 PHP
探讨:使用XMLSerialize 序列化与反序列化
Jun 08 PHP
PHP函数func_num_args用法实例分析
Dec 07 PHP
PHP7.1方括号数组符号多值复制及指定键值赋值用法分析
Sep 26 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
Aug 29 PHP
PHP SESSION机制的理解与实例
Mar 22 PHP
PHP xpath提取网页数据内容代码解析
Jul 16 PHP
WordPress免插件实现面包屑导航的示例代码
Aug 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自定义函数实现代码
2011/12/30 PHP
在wamp集成环境下升级php版本(实现方法)
2013/07/01 PHP
php保存二进制原始数据为图片的程序代码
2014/10/14 PHP
使用PHP进行微信公众平台开发的示例
2015/08/21 PHP
PHP动态生成指定大小随机图片的方法
2016/03/25 PHP
PHP生成加减算法方式的验证码实例
2018/03/12 PHP
JavaScript DOM 添加事件
2009/02/14 Javascript
Colortip基于jquery的信息提示框插件在IE6下面的显示问题修正方法
2010/12/06 Javascript
jQuery大于号(&gt;)选择器的作用解释
2015/01/13 Javascript
如何减少浏览器的reflow和repaint
2015/02/26 Javascript
js显示文本框提示文字的方法
2015/05/07 Javascript
深入JavaScript高级程序设计之对象、数组(栈方法,队列方法,重排序方法,迭代方法)
2015/12/01 Javascript
jQuery 插件实现随机自由弹跳气泡样式
2017/01/12 Javascript
JavaScript实现重力下落与弹性效果的方法分析
2017/12/20 Javascript
JS字符串去除连续或全部重复字符的实例
2018/03/08 Javascript
详解js访问对象的属性和方法
2018/10/25 Javascript
jQuery选择器之层次选择器用法实例分析
2019/02/19 jQuery
一篇文章介绍redux、react-redux、redux-saga总结
2019/05/23 Javascript
js+canvas实现五子棋小游戏
2020/08/02 Javascript
jQuery编写QQ简易聊天框
2020/08/27 jQuery
为什么JavaScript中0.1 + 0.2 != 0.3
2020/12/03 Javascript
python执行使用shell命令方法分享
2017/11/08 Python
使用python进行拆分大文件的方法
2018/12/10 Python
python 实现手机自动拨打电话的方法(通话压力测试)
2019/08/08 Python
文件上传服务器-jupyter 中python解压及压缩方式
2020/04/22 Python
Jupyter notebook如何修改平台字体
2020/05/13 Python
CSS3 制作绽放的莲花采用效果叠加实现
2013/01/31 HTML / CSS
英国内衣连锁店:Boux Avenue
2018/01/24 全球购物
给幼儿园老师的表扬信
2014/01/19 职场文书
励志演讲稿范文
2014/04/29 职场文书
环境卫生标语
2014/06/09 职场文书
物理教育专业求职信
2014/06/25 职场文书
2014年节能降耗工作总结
2014/12/11 职场文书
4S店销售内勤岗位职责
2015/04/13 职场文书
毕业班班主任工作总结2015
2015/07/23 职场文书
赞美教师的句子
2019/09/02 职场文书