PHP实现的创建带logo图标二维码生成类详解

(编辑:jimmy 日期: 2024/10/3 浏览:2)

本文实例讲述了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程序设计有所帮助。

一句话新闻
高通与谷歌联手!首款骁龙PC优化Chrome浏览器发布
高通和谷歌日前宣布,推出首次面向搭载骁龙的Windows PC的优化版Chrome浏览器。
在对骁龙X Elite参考设计的初步测试中,全新的Chrome浏览器在Speedometer 2.1基准测试中实现了显著的性能提升。
预计在2024年年中之前,搭载骁龙X Elite计算平台的PC将面世。该浏览器的提前问世,有助于骁龙PC问世就获得满血表现。
谷歌高级副总裁Hiroshi Lockheimer表示,此次与高通的合作将有助于确保Chrome用户在当前ARM兼容的PC上获得最佳的浏览体验。