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 相关文章推荐
利用js调用后台php进行数据处理原码
Oct 09 PHP
用PHP实现ODBC数据分页显示一例
Oct 09 PHP
Joomla下利用configuration.php存储简单数据
May 19 PHP
php下通过curl抓取yahoo boss 搜索结果的实现代码
Jun 10 PHP
解析PHP处理换行符的问题 \r\n
Jun 13 PHP
PHP把数字转成人民币大写的函数分享
Jun 30 PHP
一段实用的php验证码函数
May 19 PHP
PHP创建单例后台进程的方法示例
May 23 PHP
php post json参数的传递和接收处理方法
May 31 PHP
ThinkPHP5.0 图片上传生成缩略图实例代码说明
Jun 20 PHP
php微信公众号开发之秒杀
Oct 20 PHP
PHP面向对象程序设计之接口的继承定义与用法详解
Dec 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
实现了一个PHP5的getter/setter基类的代码
2007/02/25 PHP
理解和运用PHP中的多态性[译]
2011/08/02 PHP
ThinkPHP模板中判断volist循环的最后一条记录的验证方法
2014/07/01 PHP
PHP闭包函数详解
2016/02/13 PHP
php bootstrap实现简单登录
2016/03/08 PHP
简单谈谈PHP中的trait
2017/02/25 PHP
基于laravel belongsTo使用详解
2019/10/18 PHP
Aster vs KG BO3 第一场2.18
2021/03/10 DOTA
javascript将数组插入到另一个数组中的代码
2013/01/10 Javascript
用jquery模仿的a的title属性的例子
2014/10/22 Javascript
使用Node.js配合Nginx实现高负载网络
2015/06/28 Javascript
JS、jQuery中select的用法详解
2016/04/21 Javascript
vue-cli结合Element-ui基于cropper.js封装vue实现图片裁剪组件功能
2018/03/01 Javascript
vue2.0 子组件改变props值,并向父组件传值的方法
2018/03/01 Javascript
浅谈Webpack4 Tree Shaking 终极优化指南
2019/11/18 Javascript
JS禁用右键、禁用Ctrl+u、禁用Ctrl+s、禁用F12的实现代码
2020/12/01 Javascript
最基础的Python的socket编程入门教程
2015/04/23 Python
flask中过滤器的使用详解
2018/08/01 Python
对pyqt5之menu和action的使用详解
2019/06/20 Python
python算法题 链表反转详解
2019/07/02 Python
Python学习笔记之Zip和Enumerate用法实例分析
2019/08/14 Python
Django将默认的SQLite更换为MySQL的实现
2019/11/18 Python
python json load json 数据后出现乱序的解决方案
2020/02/27 Python
OpenCV读取与写入图片的实现
2020/10/13 Python
Python通过getattr函数获取对象的属性值
2020/10/16 Python
岗位廉政承诺书
2014/03/27 职场文书
公司授权委托书
2014/04/04 职场文书
2014基层党员批评与自我批评范文
2014/09/24 职场文书
小学班主任经验交流材料
2014/12/16 职场文书
校长师德表现自我评价
2015/03/05 职场文书
2015年环境整治工作总结
2015/05/22 职场文书
2016年社会主义核心价值观心得体会
2016/01/21 职场文书
超详细Python解释器新手安装教程
2021/05/10 Python
Java字符缓冲流BufferedWriter
2022/04/09 Java/Android
MySql如何将查询的出来的字段进行转换
2022/06/14 MySQL
win10频率超出范围怎么办?win10老显示超出工作频率范围的解决方法
2022/07/07 数码科技