快速封装一个二维码在线生成接口
方法一:利用接口,生成二维码
这种方法生成的二维码最简单,你只需要调用别人提供的二维码生成接口,同时传递相应的参数即可.
<?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类库很强大,不只是笔者写的这几个简单的功能.比如二维码的背景色,前景色,边框等等这些更有趣的东西需要大家自行去探索,这里只是简单地带你入门,如何使用第三方类库,和如何基于第三方类库,封装自己的接口.
快速封装一个二维码在线生成接口相关推荐
- 二维码在线生成api
二维码在线生成api,执行生成二维码,直接用标签调用接口地址即可. 接口名称:二维码在线生成api 接口平台:聚合数据 接口地址:http://liantu.api.juhe.cn/api.php 支 ...
- [日推荐]『草料二维码』免费二维码在线生成工具
二维码又称QR Code,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型.人们可以把名片.邮件.网址.电话号码.等信息生成对应的二 ...
- 纯JavaScript二维码在线生成网页源码
介绍: 纯JavaScript实现二维码生成的网页源码,各位技术爱好者可以拿去研究, 支持设置二维码的各项具体内容,适合专业人士使用. 网盘下载地址: https://zijiewangpan.com ...
- 二维码在线生成的简单操作
1.首先我们打开Excel软件 2.点击[图片工具](Excel工具箱,百度即可了解详细下载安装信息,本文这里就不做详细解说.) 3.点击[单个生成] 4.然后在[二维码内容]选项内录入要制作 ...
- 微信公众号渠道二维码怎么生成?可以进行用户分组吗?
公众号渠道二维码是一种带参数的二维码,微信公众平台为服务号提供了生成带参二维码的接口,满足服务号的推广分析需求,运营者可以通过渠道二维码来判定粉丝来源,并对用户进行分组管理. 微信公众号渠道二维码的作 ...
- 怎么将图文、视频生成一个二维码?多内容在线生成二维码的方法
现在很多幼儿园在招生.宣传时经常会使用二维码的方式来让家长快速了解幼儿园的信息,那么大多采用的方式也是通过文字.图片.视频等类型的内容来做宣传推广,那么如何将这些类型的内容同时放到一个二维码中呢?怎么 ...
- 前端vue uni-app基于uQRCode封装简单快速实用全端二维码生成插件
快速实现基于uQRCode封装简单快速实用全端二维码生成插件; 下载完整代码请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=12677 效果图 ...
- 在线生成在微信可用的网址二维码的API接口
现在很多大网站都有这样的一个功能,使用手机扫描一下网页上的二维码便可快速在手机上访问网站.想要实现这样的功能其实很简单,下面分享一个在线生成网址二维码的API接口.都是采用http协议接口,无需下载安 ...
- 快速连WiFi,你只需一个二维码
一,地铁WIFI二维码 目前,已经有389个地铁站安装了WiFi二维码,这使得乘客可以扫描二维码直接连接到WiFi,而无需搜索或询问密码.WiFi二维码最显著的例子之一是"德里地铁公司(DM ...
最新文章
- 为 ASP.NET Datagrid 创建自定义列
- Warning: Using a password on the command line interface can be insecure.解决办法
- GPIO几种配置的作用
- UI- UIView控件知识点回顾
- java 二分查找 排序_java 冒泡排序 二分查找
- 《从零开始学习jQuery》及《jQuery风暴》学习笔记
- eclipse cdt无法调试_eclipse导入Web项目并且部署到tomcat(超详细)
- 《编程之美:分层遍历二叉树》的另外两个实现
- python将对象放入列表根据某个属性排升序_python实现对象列表根据某个属性排序的方法详解...
- vue router name命名规范_vue-router使用
- JVM监控及诊断工具GUI篇之Arthas(四):monitor、watch、trace相关指令
- plc输入/输出模块的选择
- java 二叉树 叶节点_java二叉树和叶子节点的实现
- DragonFly BSD 4.2发布
- 逍遥模拟器上传服务器文件,逍遥模拟器后台操作
- 深度学习图像数据库总结(收藏用)
- 【运维面试】公司拒绝了你,后来又通知你去上班,还要不要去?
- 七天学会NodeJS——第一天
- LCID表(区域设置ID表)
- put url带参数_问题回答:Http 请求的Post 和Put 的区别
热门文章
- Win10系统下怎么开HDR?
- 如何把html5设置为桌面背景,怎么将照片设置为电脑桌面
- 立体声音频消音_如何更换立体声连接器并抢救音频电缆和耳机
- 关于【SD-WEBUI】的API:开发代码示例和帮助文档
- 2020哈工大计算机考研大纲,2020年哈尔滨工业大学854计算机基础硕士研究生入学考试科目大纲...
- 鼠标实现物体拖动带拖尾的效果
- 51单片机蜂鸣器播放音乐C语言程序实例,51单片机蜂鸣器音乐之八月桂花播放源程序...
- 蓝牙技术|一文带你了解电动车蓝牙钥匙
- win2008 64位配置
- JBuilder使用心得