PHP生成二维码

上有在线生成二维码的接口,比较出名的有如下三个:

一、联图 API

接口地址:http://qr.liantu.com/api.php

调用方法:http://qr.liantu.com/api.php?text=http://huangji.me

引用参数: 以下参数可用于引用二维码图片时定义图片样式 参数引用例子:http://qr.liantu.com/api.php?&bg=ffffff&fg=cc0000&text=x 参数 描述 赋值例子 bg 背景颜色 bg=颜色代码,例如:bg=ffffff fg 前景颜色 fg=颜色代码,例如:fg=cc0000 gc 渐变颜色 gc=颜色代码,例如:gc=cc00000 el 纠错等级 el可用值:h\q\m\l,例如:el=h w 尺寸大小 w=数值(像素),例如:w=300 m 静区(外边距) m=数值(像素),例如:m=30 pt 定位点颜色(外框) pt=颜色代码,例如:pt=00ff00 inpt 定位点颜色(内点) inpt=颜色代码,例如:inpt=000000 logo logo图片 logo=图片地址,例如:logo=http://www.liantu.com/images/2013/sample.jpg

二、JiaThis API

接口地址:http://s.jiathis.com/qrcode.php

调用方法:http://s.jiathis.com/qrcode.php?url=http://huangji.me

三、快拍 API

接口地址:http://api.kuaipai.cn/qr

调用方法:http://api.kuaipai.cn/qr?chl=http://huangji.me

第一个功能最强大,可以指很多参数,例如二维码的大小,颜色等。但用于用的人比较多,第一个有时候生成二维码的速度比较慢。

自己弄一个生成二维码的接口

网上下载一个phpqrcode的类(http://yunpan.cn/cwyHkGRYxRH2j (提取码:c141)),然后建一个php文件(例如qrcode.php),引入这个类:

<?php
if(isset($_GET['url'])){
    include 'phpqrcode.php';
    $value = $_GET['url']; //二维码内容
    $errorCorrectionLevel = 'L';//容错级别
    $matrixPointSize = 6;//生成图片大小
    //生成二维码图片
    QRcode::png($value, false, $errorCorrectionLevel, $matrixPointSize, 2);
    //$QR = 'qrcode.png';//已经生成的原始二维码图
    //echo '<img src="qrcode.png">';
}
?>

于是,这样就可以通过网址/qrcode.php?url=http://www.huangji.me 这样的方式来生成二维码图片了,也可以直接放入到img标签中,例如:

<img src='/qrcode.php?url=http://www.huangji.me' />

如果你想生成二维图图片中间有logo的那种,不妨参考下面的代码:

if(isset($_GET['url'])){ include 'phpqrcode.php'; $value = $_GET['url']; //二维码内容 $errorCorrectionLevel = 'L';//容错级别 $matrixPointSize = 6;//生成图片大小 //生成二维码图片 QRcode::png($value, 'qrcode.png', $errorCorrectionLevel, $matrixPointSize, 2); $logo = 'logo.png';//准备好的logo图片 $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); } //输出图片 imagepng($QR, 'helloweba.png'); echo '<img src="helloweba.png">'; }

发表评论

电子邮件地址不会被公开。 必填项已用*标注