前言

不知道大家发现没有,我的文章二维码已经加入了logo,这个二维码生成是我自己搭建的,因为我发现用公开的api生成二维码貌似不太稳定,所以自己搭建一个,来只服务自己。

php生成二维码带logo

这个功能不是原创,而且百度一搜一大把,不过搜到的都不是特别完整,说的比较完善的又不带logo,说带logo的二维码生成部分又说的很片面。
所以我结合两者,并且直接做成了压缩包,下载解压就能用了。

下载

点击下载

使用

url: 二维码对应的网址
m : 二维码白色边框尺寸,缺省值: 0px
e : 容错级别(errorLevel),可选参数如下(缺省值 L):

 L水平 7%的字码可被修正
 M水平 15%的字码可被修正
 Q水平 25%的字码可被修正
 H水平 30%的字码可被修正

p : 二维码尺寸,可选范围1-10(具体大小和容错级别有关)(缺省值:3)
https://zezeshe.com/er/qrcode.php?&url=二维码对应的网址&p=二维码尺寸&m=二维码白色边框尺寸&e=容错级别
如本文二维码图片地址https://zezeshe.com/er/qrcode.php?&url=https://blog.zezeshe.com/archives/erweimalogo/&p=4.8685
qrcode.png

拓展

有些设置可以修改qrcode.php来实现,详细代码如下

<?php
include('phpqrcode/phpqrcode.php');
/取得GET参数
$url        = isset($_GET["url"]) ? $_GET["url"] : 'help';
$errorLevel = isset($_GET["e"]) ? $_GET["e"] : 'L';
$PointSize  = isset($_GET["p"]) ? $_GET["p"] : '3';
$margin     = isset($_GET["m"]) ? $_GET["m"] : '0';
preg_match('/https:\/\/([\w\W]*?)\//si', $url, $matches); 
//简单判断
//if ( $matches[1] != 'zezeshe.com'|| $url == 'help') { //取消此行注释并注释下面一行,就能加入自定义的url过滤功能
if ( $url == 'help'){
    //简单的描述一下使用方法
    header("Content-type: text/html; charset=utf-8");
    echo '<title>在线二维码API接口| jrotty博客</title>';
    echo '<h1>欢迎使用jrotty博客在线二维码API服务!</h1>
    使用前请仔细查看参数说明:<br />
    <br />
    url: 二维码对应的网址<br /><br />
    m&nbsp&nbsp: 二维码白色边框尺寸,缺省值: 0px<br /><br />
    e&nbsp&nbsp: 容错级别(errorLevel),可选参数如下(缺省值 L):<br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbspL水平    7%的字码可被修正<br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbspM水平    15%的字码可被修正<br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbspQ水平    25%的字码可被修正<br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbspH水平    30%的字码可被修正<br />
    p&nbsp&nbsp: 二维码尺寸,可选范围1-10(具体大小和容错级别有关)(缺省值:3)<br /><br />
 ';
    exit();
} else  {
    //调用二维码生成函数
    createqr($url, $errorLevel, $PointSize, $margin);
} 
//简单二维码生成函数
function createqr($value,$errorCorrectionLevel,$matrixPointSize,$margin) {
    QRcode::png($value,'qrcode.png', $errorCorrectionLevel, $matrixPointSize, $margin);
 $logo= 'logo.jpg';
$QR = '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); 
} 
//输出图片 
Header("Content-type: image/png");
ImagePng($QR);
}
?>

文章部分内容参考:
分享张戈博客自用的php网址在线转换二维码的API源码

版权属于:泽泽社长
本文链接:https://blog.zezeshe.com/archives/erweimalogo.html
本站未注明转载的文章均为原创,并采用 CC BY-NC-SA 4.0 授权协议,转载请注明来源,谢谢!