本文实例讲述了PHP实现的创建带logo图标二维码生成类。分享给大家供大家参考,具体如下:

这里介绍php实现创建二维码类,支持设置尺寸,加入LOGO,描边、圆角、透明度,等处理。提供完整代码,演示实例及详细参数说明,方便大家学习使用。

实现功能如下:

1.创建二维码
2.加入logo到二维码中
3.logo可描边
4.logo可圆角
5.logo可设透明度
6.logo图片及输出图片类型支持png,jpg,gif格式
7.可设置输出图片质量

设定参数说明:

ecc 二维码质量 L-smallest, M, Q, H-best size 二维码尺寸 1-50 dest_file 生成的二维码图片路径 quality 生成的图片质量 logo logo路径,为空表示不加入logo logo_size logo尺寸,null表示按二维码尺寸比例自动计算 logo_outline_size logo描边尺寸,null表示按logo尺寸按比例自动计算 logo_outline_color logo描边颜色 logo_opacity logo不透明度 0-100 logo_radius logo圆角角度 0-30

代码如下:

PHPQRCode.class.php

<"/qrcode/qrlib.php";
/**
 * PHP创建二维码类
 * Date:  2018-03-18
 * Author: fdipzone
 * Version: 1.0
 *
 * Description:
 * PHP实现创建二维码类,支持设置尺寸,加入LOGO,圆角,透明度,等处理。
 *
 * Func:
 * public set_config      设定配置
 * public generate       创建二维码
 * private create_qrcode    创建纯二维码图片
 * private add_logo       合拼纯二维码图片与logo图片
 * private image_outline    图片对象进行描边
 * private image_fillet     图片对象进行圆角处理
 * private imagecopymerge_alpha 合拼图片并保留各自透明度
 * private create_dirs     创建目录
 * private hex2rgb       hex颜色转rgb颜色
 * private get_file_ext     获取图片类型
 */
class PHPQRCode{ // class start
  /** 默认设定 */
  private $_config = array(
    'ecc' => 'H',            // 二维码质量 L-smallest, M, Q, H-best
    'size' => 15,            // 二维码尺寸 1-50
    'dest_file' => 'qrcode.png',    // 创建的二维码路径
    'quality' => 100,          // 图片质量
    'logo' => '',            // logo路径,为空表示没有logo
    'logo_size' => null,        // logo尺寸,null表示按二维码尺寸比例自动计算
    'logo_outline_size' => null,    // logo描边尺寸,null表示按logo尺寸按比例自动计算
    'logo_outline_color' => '#FFFFFF', // logo描边颜色
    'logo_opacity' => 100,       // logo不透明度 0-100
    'logo_radius' => 0,         // logo圆角角度 0-30
  );
  /**
   * 设定配置
   * @param Array  $config 配置内容
   */
  public function set_config($config){
    // 允许设定的配置
    $config_keys = array_keys($this->_config);
    // 获取传入的配置,写入设定
    foreach($config_keys as $k=>$v){
      if(isset($config[$v])){
        $this->_config[$v] = $config[$v];
      }
    }
  }
  /**
   * 创建二维码
   * @param String $data 二维码内容
   * @return String
   */
  public function generate($data){
    // 创建临时二维码图片
    $tmp_qrcode_file = $this->create_qrcode($data);
    // 合拼临时二维码图片与logo图片
    $this->add_logo($tmp_qrcode_file);
    // 删除临时二维码图片
    if($tmp_qrcode_file!='' && file_exists($tmp_qrcode_file)){
      unlink($tmp_qrcode_file);
    }
    return file_exists($this->_config['dest_file'])"color: #ff0000">demo.php

<"'.$qrcode.'">';
"//img.jbzj.com/file_images/article/201807/201875150516574.png" alt="" />

源码下载地址:点击此处本站下载

PS:这里再为大家推荐两款二维码相关在线工具供大家参考使用:

在线生成二维码工具(加强版)
http://tools.jb51.net/transcoding/jb51qrcode

在线二维码解码识别工具
http://tools.jb51.net/transcoding/trans_qrcode

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP图形与图片操作技巧汇总》、《PHP数组(Array)操作技巧大全》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《PHP数学运算技巧总结》、《php字符串(string)用法总结》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

标签:
PHP,logo图标,二维码,生成类

免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
狼山资源网 Copyright www.pvsay.com

稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!

昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。

这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。

而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?