侯体宗的博客
  • 首页
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

php生成带logo二维码方法小结

php  /  管理员 发布于 7年前   262

一、使用的类库

1、phpqrcode(php库)

2、qrcode.js(javascript库)

二、phpqrcode的使用

只用php的类库,也就是二维码的生成在后台操作。因为要在后台生成带logo的二维码,那么首先必须将logo图片上传至服务器(在上传这里我用了webuploader)

phpqrcode使用方法:

首先下载phpqrcode:http://phpqrcode.sourceforge.net/

然后在使用之前记得引入phpqrcode.php文件

$value = $url;//二维码内容 $errorCorrectionLevel = 'L';//设置容错级别 $matrixPointSize = $size;//生成图片大小 QRcode::png($value, 'public_files'.DIRECTORY_SEPARATOR .'code'.DIRECTORY_SEPARATOR .'qrcode.png', $errorCorrectionLevel, $matrixPointSize, 2);//生成二维码图片 无logo$logo = $tar_path;//上传至服务器的logo图片 $QR = 'public_files'.DIRECTORY_SEPARATOR .'code'.DIRECTORY_SEPARATOR .'qrcode.png';//已经生成的原始二维码图 if ($logo !== FALSE) {  $QR = imagecreatefromstring(file_get_contents($QR));  $logo = imagecreatefromstring(file_get_contents($logo));  $QR_width = imagesx($QR);//二维码图片宽度  $QR_height = imagesy($QR);//二维码图片高度  $logo_width = imagesx($logo);//logo图片宽度  $logo_height = imagesy($logo);//logo图片高度  $logo_qr_width = $QR_width / 5;  $scale = $logo_width/$logo_qr_width;  $logo_qr_height = $logo_height/$scale;  $from_width = ($QR_width - $logo_qr_width) / 2;  imagecopyresampled($QR, $logo, $from_width, $from_width, 0, 0, $logo_qr_width,    $logo_qr_height, $logo_width, $logo_height);}$name = time();imagepng($QR, 'public_files'.DIRECTORY_SEPARATOR .'code'.DIRECTORY_SEPARATOR .$name.'.png');//输出带logo的二维码图片

三、qrcode.js的使用

使用qrcode.js在前端直接生成二维码,首先需要下载jquery.qrcode.js

qrcode的使用也很简单:

var length = size*80;//设置二维码大小length = parseInt(length);$("#code_img").qrcode({ //code_img是一个img标签的id  render : "canvas",  //设置渲染方式,有table和canvas,使用canvas方式渲染性能相对来说比较好  text : url,  //扫描二维码后显示的内容,可以直接填一个网址,扫描二维码后自动跳向该链接  width : length,       //二维码的宽度  height : length,  background : "#ffffff",    //二维码的后景色  foreground : "#000000",    //二维码的前景色  src: $('#image').attr('src')       //二维码中间的图片});

引入jquery.qrcode.js后再自己编写这段js代码,执行后二维码就可以显示处理了

主要是二维码中间的logo引用格式,一般取本地图片有两种格式:一种是本地URL,另一种是将图片转成base64格式

一开始我试用本地URL的格式来引用图片,发现只能引用与js文件统一目录下的图片,所以本地URL格式并不支持,于是我采用了后一种方式。

用

来上传选取本地图片,然后取其base64格式

var input = document.getElementById("file_input"); if(typeof FileReader==='undefined'){  input.setAttribute('disabled','disabled');}else{  input.addEventListener('change',readFile,false);} function readFile(){  var file = this.files[0];  if(!/image\/\w+/.test(file.type)){    alert("文件必须为图片!");    return false;  }  var reader = new FileReader();  reader.readAsDataURL(file);  reader.onload = function(e){    $('#image').attr('src',this.result);//image为img标签的id  }}

将文件读取为一串Data URL字符串,将小文件以一种特殊格式的URL地址直接读入页面。这个特殊格式就是base64

三、两个类库之间的对比

两个类库,一个在后台操作,一个直接在前端操作。

phpqrcode 生成二维码在后台操作,生成的图片保存在服务器。一般生成二维码都是直接保存到本地然后直接使用,很少会去服务器二次获取,所以采用phpqrcode的 话会使得服务器中的图片堆积,占用了不必要的空间,删除的话也会花费多余的开销。所以使用phpqrcode不适用于这种二维码生成工具。而且上传图片也 会产生多余的开销

qrcode.js直接在前端操作,上传图片直接保存在浏览器,直接在前端生成二维码,不需要任何后台的干涉,这样减少了不必要的开销,也不会在服务器造成图片的堆积而占用不必要的空间。

您可能感兴趣的文章:

  • 使用PHP生成二维码的两种方法(带logo图像)
  • PHP下通过QRCode类库创建中间带网站LOGO的二维码
  • Thinkphp3.2.3整合phpqrcode生成带logo的二维码
  • PHP基于phpqrcode生成带LOGO图像的二维码实例
  • Laravel使用PHPQRCODE实现生成带有LOGO的二维码图片功能示例
  • PHP基于phpqrcode类生成二维码的方法详解
  • PHP微信开发之二维码生成类
  • php实现扫描二维码根据浏览器类型访问不同下载地址
  • PHP实现的创建带logo图标二维码生成类详解


  • 上一条:
    PHP实现基于mysqli的Model基类完整实例
    下一条:
    PHP使用PDO操作数据库的乱码问题解决方法
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • 用Time Warden监控PHP中的代码处理时间(0个评论)
    • 在PHP中使用array_pop + yield实现读取超大型目录功能示例(0个评论)
    • Property Hooks RFC在PHP 8.4中越来越接近现实(0个评论)
    • 近期文章
    • 在windows10中升级go版本至1.24后LiteIDE的Ctrl+左击无法跳转问题解决方案(0个评论)
    • 智能合约Solidity学习CryptoZombie第四课:僵尸作战系统(0个评论)
    • 智能合约Solidity学习CryptoZombie第三课:组建僵尸军队(高级Solidity理论)(0个评论)
    • 智能合约Solidity学习CryptoZombie第二课:让你的僵尸猎食(0个评论)
    • 智能合约Solidity学习CryptoZombie第一课:生成一只你的僵尸(0个评论)
    • 在go中实现一个常用的先进先出的缓存淘汰算法示例代码(0个评论)
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(95个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2016-11
    • 2017-06
    • 2017-07
    • 2017-08
    • 2017-09
    • 2017-11
    • 2017-12
    • 2018-01
    • 2018-02
    • 2018-03
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2020-07
    • 2020-09
    • 2021-02
    • 2021-03
    • 2021-04
    • 2021-05
    • 2021-06
    • 2021-07
    • 2021-08
    • 2021-09
    • 2021-10
    • 2021-11
    • 2021-12
    • 2022-01
    • 2022-02
    • 2022-05
    • 2022-06
    • 2022-07
    • 2022-08
    • 2022-09
    • 2022-10
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-02
    • 2023-03
    • 2023-04
    • 2023-05
    • 2023-06
    • 2023-07
    • 2023-08
    • 2023-09
    • 2023-10
    • 2023-11
    • 2023-12
    • 2024-01
    • 2024-02
    • 2024-03
    • 2024-04
    • 2024-05
    • 2024-06
    • 2024-07
    • 2024-09
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客