方法一:利用接口,生成二维码

这种方法生成的二维码最简单,你只需要调用别人提供的二维码生成接口,同时传递相应的参数即可.

<?php
/*** @author DengPeng <3@dengpeng.cc>* @since 2017/01/18* @copyright copyright (c) 2017 itbool.com GPL* @license http://www.itbool.com/*/$url = 'http://www.itbool.com';
$logo = 'http://www.itbool.com/images/logo.jpg';
$alt = '我的二维码';
generateQRcode($url, $logo, $alt);/*** 利用接口输出二维码*/function generateQRcode($text, $logo='', $alt='')
{$text = urlencode($text);echo '<img src="http://qr.topscan.com/api.php?text='.$text.'&logo='.$logo.'" alt="'.$alt.'">';
}

展现效果:

方法二:使用专门的类库PHP QR Code

步骤①:去PHPQRCode类库官方下载类库

官方地址:http://phpqrcode.sourceforge.net/

步骤②:引入qrlib.php库文件,调用QRcode::png()静态方法即可实现生成二维码

<?php
/*** @author DengPeng <3@dengpeng.cc>* @since 2017/01/18* @copyright copyright (c) 2017 itbool.com GPL* @license http://www.itbool.com/*//*** 调用PHPQR类库生成二维码图片*/include './phpqrcode/qrlib.php';// $text二维码中的内容
$text = 'http://www.dengpeng.cc/';
// 是否生成图片资源,FALSE为不生成,只输出
$outfile = false;
// 容错率,也就是即使有区域被覆盖,仍然能够被识别
/*** L QR_ECLEVEL_L,7% 就是被覆盖7%也能被识别* M QR_ECLEVEL_M,15% 就是被覆盖15%也能被识别* Q QR_ECLEVEL_Q,25% 就是被覆盖25%也能被识别* H QR_ECLEVEL_H,30% 就是被覆盖30%也能被识别* 那么你可想而知,当纠错级别变高后,图片自然而然变大了,因为像素点变大了*/
$level = 'QR_ECLEVEL_L';
// 生成的图片大小
$size = 10;
// 二维码图片的margin值,就是二维码图边距值
$margin = 2;
// 是否保存二维码,并显示
$saveandprint=false;QRcode::png($text, false, $level, $size, $margin);

基于PHPQRCode类库自行封装一个二维码生成接口

学习完PHPQRCode类库,有些小伙伴可能按捺不住了,既然别人能写一个接口,那我能不能利用这个类库,也来写一个二维码在线生成接口呢?

基于分享的精神,我们决定,带领小伙伴们,来封装一个这样接口.

首先看下我的目录结构:

编辑api.php文件

<?php
/*** @author DengPeng <3@dengpeng.cc>* @since 2017/01/18* @copyright copyright (c) 2017 itbool.com GPL* @license http://www.itbool.com/*//*** 接口文件*/// 加载类库
include './phpqrcode/qrlib.php';// error_reporting(0);// 获取调用者参数
$text = isset($_GET['text']) ? trim($_GET['text']) : 'http://www.dengpeng.cc/';
$w = isset($_GET['w']) ? trim($_GET['w']) : 10;
$logo = isset($_GET['logo']) ? trim($_GET['logo']) : false;
$el = isset($_GET['el']) ? trim($_GET['el']) : 'h';// 执行生成
generateQRcode($text, $w, $logo, $el);/*** 二维码生成器* @param  string  $text [description]* @param  integer $w    [description]* @param  string  $logo [description]* @param  string  $el   [description]* @return [type]        [description]* 2017-01-18T15:01:40+0800*/
function generateQRcode($text='http://www.dengpeng.cc/', $w=10, $logo_img=false, $el='h')
{// 将纠错级别转成大写$el = strtoupper($el);// 1)判断是否有logo需要加载if ($logo_img !== false) {// 先生成二维码QRcode::png($text, 'qrcode.png', $el, $w, 2);// 创建大画布$qr = imagecreatefromstring(file_get_contents('qrcode.png'));// 创建小画布$logo = imagecreatefromstring(file_get_contents($logo_img));// 获取大画布的宽高list($qr_w, $qr_h) = getimagesize('qrcode.png');// 获取小画布的宽高list($logo_w, $logo_h) = getimagesize($logo_img);// 创建空白画布// 定义logo最终的宽高,为了让logo能够自适应// logo覆盖的面积为二维码的三分之一$width = $qr_w/3;$height = $qr_h/3;$white_logo = imagecreatetruecolor($width, $height);$white = imagecolorallocate($white_logo, 255, 255, 255);imagefill($white_logo, 0, 0, $white);// 等比例缩放logo$ratio = $logo_w/$logo_h;if ($width/$height > $ratio) {$width = $height*$ratio;} else {$height = $width/$ratio;}// 重新采样imagecopyresampled($qr, $logo, ($qr_w-$width)/2, ($qr_h-$height)/2, 0, 0, $width, $height, $logo_w, $logo_h);// 输出图片Header("Content-type: image/png");/*** 图片输出,二选一,gd库自定义的函数imagepng()或者* 像PHPQRCode类库一样使用ImagePng()这在Windows系统下没有问题* 但是移植到了Linux系统下,问题就暴露了,严格区分大小写**/imagepng($qr);// 销毁画布imagedestroy($qr);imagedestroy($logo);imagedestroy($white_logo);} else {// 没有logo的情况return QRcode::png($text, false, $el, $w, 2);}
}

效果展示:

好了,基于PHPQRCode类库制作自己的接口就是这么简单,赶快测试一下,做成自己的接口,跟你的小伙伴一起使用吧.

注意事项:

①你的PHP必须开启了php_gd2.dll

说明:

PHPQRCode类库很强大,不只是笔者写的这几个简单的功能.比如二维码的背景色,前景色,边框等等这些更有趣的东西需要大家自行去探索,这里只是简单地带你入门,如何使用第三方类库,和如何基于第三方类库,封装自己的接口.

快速封装一个二维码在线生成接口相关推荐

  1. 二维码在线生成api

    二维码在线生成api,执行生成二维码,直接用标签调用接口地址即可. 接口名称:二维码在线生成api 接口平台:聚合数据 接口地址:http://liantu.api.juhe.cn/api.php 支 ...

  2. [日推荐]『草料二维码』免费二维码在线生成工具

    二维码又称QR Code,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型.人们可以把名片.邮件.网址.电话号码.等信息生成对应的二 ...

  3. 纯JavaScript二维码在线生成网页源码

    介绍: 纯JavaScript实现二维码生成的网页源码,各位技术爱好者可以拿去研究, 支持设置二维码的各项具体内容,适合专业人士使用. 网盘下载地址: https://zijiewangpan.com ...

  4. 二维码在线生成的简单操作

    ​ 1.首先我们打开Excel软件 2.点击[图片工具](Excel工具箱,百度即可了解详细下载安装信息,本文这里就不做详细解说.) 3.点击[单个生成] ​ 4.然后在[二维码内容]选项内录入要制作 ...

  5. 微信公众号渠道二维码怎么生成?可以进行用户分组吗?

    公众号渠道二维码是一种带参数的二维码,微信公众平台为服务号提供了生成带参二维码的接口,满足服务号的推广分析需求,运营者可以通过渠道二维码来判定粉丝来源,并对用户进行分组管理. 微信公众号渠道二维码的作 ...

  6. 怎么将图文、视频生成一个二维码?多内容在线生成二维码的方法

    现在很多幼儿园在招生.宣传时经常会使用二维码的方式来让家长快速了解幼儿园的信息,那么大多采用的方式也是通过文字.图片.视频等类型的内容来做宣传推广,那么如何将这些类型的内容同时放到一个二维码中呢?怎么 ...

  7. 前端vue uni-app基于uQRCode封装简单快速实用全端二维码生成插件

    快速实现基于uQRCode封装简单快速实用全端二维码生成插件; 下载完整代码请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=12677 效果图 ...

  8. 在线生成在微信可用的网址二维码的API接口

    现在很多大网站都有这样的一个功能,使用手机扫描一下网页上的二维码便可快速在手机上访问网站.想要实现这样的功能其实很简单,下面分享一个在线生成网址二维码的API接口.都是采用http协议接口,无需下载安 ...

  9. 快速连WiFi,你只需一个二维码

    一,地铁WIFI二维码 目前,已经有389个地铁站安装了WiFi二维码,这使得乘客可以扫描二维码直接连接到WiFi,而无需搜索或询问密码.WiFi二维码最显著的例子之一是"德里地铁公司(DM ...

最新文章

  1. 为 ASP.NET Datagrid 创建自定义列
  2. Warning: Using a password on the command line interface can be insecure.解决办法
  3. GPIO几种配置的作用
  4. UI- UIView控件知识点回顾
  5. java 二分查找 排序_java 冒泡排序 二分查找
  6. 《从零开始学习jQuery》及《jQuery风暴》学习笔记
  7. eclipse cdt无法调试_eclipse导入Web项目并且部署到tomcat(超详细)
  8. 《编程之美:分层遍历二叉树》的另外两个实现
  9. python将对象放入列表根据某个属性排升序_python实现对象列表根据某个属性排序的方法详解...
  10. vue router name命名规范_vue-router使用
  11. JVM监控及诊断工具GUI篇之Arthas(四):monitor、watch、trace相关指令
  12. plc输入/输出模块的选择
  13. java 二叉树 叶节点_java二叉树和叶子节点的实现
  14. DragonFly BSD 4.2发布
  15. 逍遥模拟器上传服务器文件,逍遥模拟器后台操作
  16. 深度学习图像数据库总结(收藏用)
  17. 【运维面试】公司拒绝了你,后来又通知你去上班,还要不要去?
  18. 七天学会NodeJS——第一天
  19. LCID表(区域设置ID表)
  20. put url带参数_问题回答:Http 请求的Post 和Put 的区别

热门文章

  1. Win10系统下怎么开HDR?
  2. 如何把html5设置为桌面背景,怎么将照片设置为电脑桌面
  3. 立体声音频消音_如何更换立体声连接器并抢救音频电缆和耳机
  4. 关于【SD-WEBUI】的API:开发代码示例和帮助文档
  5. 2020哈工大计算机考研大纲,2020年哈尔滨工业大学854计算机基础硕士研究生入学考试科目大纲...
  6. 鼠标实现物体拖动带拖尾的效果
  7. 51单片机蜂鸣器播放音乐C语言程序实例,51单片机蜂鸣器音乐之八月桂花播放源程序...
  8. 蓝牙技术|一文带你了解电动车蓝牙钥匙
  9. win2008 64位配置
  10. JBuilder使用心得