php生成文章二维码带logo
作者:佚名 来源:爱好者 时间:2016-06-14
前言
不知道大家发现没有,我的文章二维码已经加入了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://qqdie.com/er/qrcode.php?&url=二维码对应的网址&p=二维码尺寸&m=二维码白色边框尺寸&e=容错级别
如本文二维码图片地址https://qqdie.com/er/qrcode.php?&url=https://qqdie.com/archives/erweimalogo/&p=4.8685

拓展
有些设置可以修改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] != 'qqdie.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  : 二维码白色边框尺寸,缺省值: 0px<br /><br />
e  : 容错级别(errorLevel),可选参数如下(缺省值 L):<br />
 L水平 7%的字码可被修正<br />
 M水平 15%的字码可被修正<br />
 Q水平 25%的字码可被修正<br />
 H水平 30%的字码可被修正<br />
p  : 二维码尺寸,可选范围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源码
php生成二维码带logo
这个功能不是原创,而且百度一搜一大把,不过搜到的都不是特别完整,说的比较完善的又不带logo,说带logo的二维码生成部分又说的很片面。
所以我结合两者,并且直接做成了压缩包,下载解压就能用了。
下载
点击下载
使用
url: 二维码对应的网址
m : 二维码白色边框尺寸,缺省值: 0px
e : 容错级别(errorLevel),可选参数如下(缺省值 L):
L水平 7%的字码可被修正
M水平 15%的字码可被修正
Q水平 25%的字码可被修正
H水平 30%的字码可被修正
p : 二维码尺寸,可选范围1-10(具体大小和容错级别有关)(缺省值:3)
https://qqdie.com/er/qrcode.php?&url=二维码对应的网址&p=二维码尺寸&m=二维码白色边框尺寸&e=容错级别
如本文二维码图片地址https://qqdie.com/er/qrcode.php?&url=https://qqdie.com/archives/erweimalogo/&p=4.8685

拓展
有些设置可以修改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] != 'qqdie.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  : 二维码白色边框尺寸,缺省值: 0px<br /><br />
e  : 容错级别(errorLevel),可选参数如下(缺省值 L):<br />
 L水平 7%的字码可被修正<br />
 M水平 15%的字码可被修正<br />
 Q水平 25%的字码可被修正<br />
 H水平 30%的字码可被修正<br />
p  : 二维码尺寸,可选范围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源码
- 上一篇:C语言改错第21题
- 下一篇:c语言编程题第95题