`
zhangjijun
  • 浏览: 35857 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

PHP生成二维码

 
阅读更多

使用PHP QR Code生成二维码

 

HP QR Code是一个PHP二维码生成类库,利用它可以轻松生成二维码,官网提供了下载和多个演示demo,查看地址:

http://phpqrcode.sourceforge.net/

下载官网提供的类库后,只需要使用phpqrcode.php就可以生成二维码了,当然您的PHP环境必须开启支持GD2。

phpqrcode.php提供了一个关键的png()方法,其中
参数$text表示生成二位的的信息文本;
参数$outfile表示是否输出二维码图片 文件,默认否;
参数$level表示容错率,也就是有被覆盖的区域还能识别,分别是 L(QR_ECLEVEL_L,7%),M(QR_ECLEVEL_M,15%),Q(QR_ECLEVEL_Q,25%),H(QR_ECLEVEL_H,30%); 
参数$size表示生成图片大小,默认是3;参数$margin表示二维码周围边框空白区域间距值;
参数$saveandprint表示是否保存二维码并显示。

. 代码如下:

public static function png($text, $outfile=false, $level=QR_ECLEVEL_L, $size=3, $margin=4, $saveandprint=false)    
{   
    $enc = QRencode::factory($level, $size, $margin);   
    return $enc->encodePNG($text, $outfile, $saveandprint=false);   
}  

调用PHP QR Code非常简单,如下代码即可生成一张内容为"http://www.cnblogs.com/txw1958/"的二维码.

include 'phpqrcode.php'; 
QRcode::png('http://www.cnblogs.com/txw1958/');

 

那么实际应用中,我们会在二维码的中间加上自己的LOGO,已增强宣传效果。那如何生成含有logo的二维码呢?其实原理很简单,先使用PHP QR Code生成一张二维码图片,然后再利用php的image相关函数,将事先准备好的logo图片加入到刚生成的原始二维码图片中间,然后重新生成一张新 的二维码图片。
. 代码如下:

复制代码
include 'phpqrcode.php';    
$value = 'http://www.cnblogs.com/txw1958/'; //二维码内容   
$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, 'helloweixin.png');   
echo '<img src="helloweixin.png">';   
复制代码
复制代码
include 'phpqrcode.php';    
$value = 'http://www.cnblogs.com/txw1958/'; //二维码内容   
$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, 'helloweixin.png');   
echo '<img src="helloweixin.png">';   
复制代码

由于二维码允许有一定的容错性,一般的二维码即使在遮住部分但仍然能够解码,经常我们扫描二维码的时候扫描到甚至不到一半时就能解码扫描结果,这是因为生成器会将部分信息重复表示来提高其容错度,这就是为什么我们在二维码中间加个LOGO图片并不影响解码结果的原因。

分享到:
评论

相关推荐

    PHP生成二维码类库

    PHP生成二维码的功能则为开发者提供了在网页中创建和展示二维码的能力。下面我们将详细探讨PHP生成二维码的相关知识点。 首先,我们需要了解的是PHP生成二维码的一种常见类库——"phpqrcode"。这个开源项目...

    PHP生成二维码图片

    本文将深入探讨如何使用PHP生成二维码图片,并将其整合到ThinkPHP项目中。 首先,我们需要了解生成二维码的基本原理。二维码是二维条形码的一种,它能够存储更多的信息,如网址、文本、名片等。生成二维码通常需要...

    一个php生成二维码的包

    当你提到“一个php生成二维码的包”,这通常是指一个PHP类库或框架,用于帮助开发者在PHP项目中生成二维码图像。 这个包的标题明确指出了它的功能——生成二维码。描述中提到“解压之后直接访问是一个例子”,这...

    PHP生成二维码的接口文件

    本文将深入探讨如何使用PHP生成二维码,以及与Redis缓存服务的集成。 首先,我们关注的是"PHP生成二维码的接口文件"。这意味着我们要创建一个PHP脚本,该脚本可以接收参数并生成相应的二维码图像。PHP QR Code库...

    php生成二维码源代码,PHP读取二维码源代码,jQuery生成二维码源代码

    首先,我们来看PHP生成二维码的实现。PHP可以通过第三方库如`PHP QR Code`来实现这个功能。`PHP QR Code`是一个用PHP编写的开源项目,能够生成从低到高的错误校正等级的各种二维码。使用步骤如下: 1. 下载并安装`...

    php生成二维码类和方法.zip

    本篇将详细讲解如何利用PHP生成二维码,以及一个特定的类和方法,帮助你理解和应用。 首先,我们要知道生成二维码的基本原理。二维码是一种二维条形码,可以存储各种类型的数据,如文本、URL、联系人信息等。通过...

    php生成二维码

    总的来说,PHP生成二维码是一个相对简单的过程,借助于像Endroid QR Code这样的库,我们可以轻松实现各种定制化的需求。无论是在网页上展示,还是保存为文件,PHP都能很好地处理这些任务。记得在实际应用中根据项目...

    php生成二维码的几种方式

    php生成二维码的几种方式 1.google开放api $urlToEncode="http://bbs.lewanchina.com"; generateQRfromGoogle($urlToEncode); function generateQRfromGoogle($chl,$widhtHeight ='150',$EC_level='L',$margin='0')...

    PHP生成二维码实例附演示地址(yii框架生成二维码).rar

    本教程将深入探讨如何在Yii框架下利用PHP生成二维码。 首先,让我们了解一下Yii框架。Yii是一个高性能的、基于组件的PHP框架,适用于开发Web 2.0应用。它提供了一系列强大的特性,如MVC(模型-视图-控制器)架构、...

    PHP生成二维码与识别二维码(1).rar

    首先,让我们了解PHP生成二维码的基本原理。PHP本身并不直接支持二维码操作,但可以通过第三方库来实现。描述中提到的"PHP后台扫码程序源码"很可能包含了如PHP QR Code这样的库,这是一个开源项目,允许开发者用PHP...

    php生成二维码(已封装)

    本教程将深入探讨如何使用PHP生成二维码,特别关注已封装的函数,以及如何在服务器上部署以实现带或不带Logo的二维码。 首先,我们需要了解二维码的基本原理。二维码(Quick Response Code)是一种二维条形码,包含...

    php生成二维码到服务器并可一键打包.7z

    本文将基于给定的文件信息,深入探讨如何利用PHP生成二维码到服务器,并进行一键打包的功能。 首先,我们要理解“php生成二维码到服务器”的概念。在PHP中,生成二维码主要依赖于第三方库,如`Endroid QR Code`或`...

    php 生成二维码完整代码

    本篇文章将详细介绍如何使用PHP生成二维码,并结合提供的文件列表进行解析。 首先,我们需要了解二维码的基本原理。二维码是一种二维条形码,能存储包括文字、数字、URL等多种类型的数据,并且可以通过智能手机等...

    php生成二维码插件

    php生成二维码插件,简单好用 嗯嗯

    phpqrcode.zip php生成二维码

    《PHP生成二维码技术详解》 二维码(QR Code)作为一种便捷的信息载体,已经在各种场合得到了广泛应用。在PHP中生成二维码,可以方便地将网址、文本、联系方式等信息编码为图形,供用户快速扫描读取。本篇文章将...

Global site tag (gtag.js) - Google Analytics