利用PHP生成二维码的二种艺术(带logo图像)

正文实例陈说了PHP基于phpqrcode类生成二维码的方法。分享给大家供我们仿效,具体如下:

乘机科技(science and technology)的迈入,大家日常见到条形码和二维码,极其是智能手提式无线电话机时期那些码更突显活跃了,后天自个儿给大家分享下何以使用PHP生成二维码,至于怎么生成二维码,一般常用的试调用google的开放api来扭转,言归正传,直接上代码了:

PHP基于phpqrcode类生成二维码的主意详解,phpphpqrcode详解

正文实例陈述了PHP基于phpqrcode类生成二维码的措施。分享给大家供我们参谋,具体如下:

行使PHP语言生成二维码,依旧挺有难度的,当然调用生成二维码图片的接口(比如:联图网

早先时代希图:

1.phpqrcode类文件下载,下载地址:
2.PHP意况必须拉花费持GD2扩张库援救(一般景观下都以开启状态)

办法解读:

下载下来的类公事是一个压缩包,里边包括众多文书和演示程序,大家只必要中间的phpqrcode.php这么些文本就能够生成二维码了。它是一个七个类的集纳文件,大家须要动用里边的QCR-Vcode类(第2963行)的png()方法(第3090行):

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);
}

第三个参数$text:二维码包罗的内容,能够是链接、文字、json字符串等等;
第四个参数$outfile:默以为false,不成形文书,只将二维码图片重临输出;不然须求提交存放生成二维码图片的文书名及路线;
第三个参数$level:默以为L,这些参数可传递的值分别是L(Q途锐_ECLEVEL_L,7%)、M(QR_ECLEVEL_M,15%)、Q(QR_ECLEVEL_Q,25%)、H(QR_ECLEVEL_H,百分之四十),那些参数调节二维码容错率,分歧的参数表示二维码可被覆盖的区域百分比,也便是被覆盖的区域还是能够分辨;
第1个参数$size:调整生成图片的深浅,默感觉4;
第5个参数$margin:调整生成二维码的空域区域大小;
第6个参数$saveandprint:保存二维码图片并出示出来,$outfile必须传递图片路线;

采取示例:

  1. 生成二维码(生成图片文件)

    // 1. 生成原本的二维码(生成图片文件)
    function scerweima($url=”){
    require_once ‘phpqrcode.php’;
    $value = $url; //二维码内容
    $errorCorrectionLevel = ‘L’; //容错等级 $matrixPointSize = 5; //生成图片大小
    //生成二维码图片
    $filename = ‘qrcode/’.microtime().’.png’;
    Q昂科威code::png($value,$filename , $errorCorrectionLevel, $matrixPointSize, 2);
    $QTiguan = $filename; //已经生成的原始二维码图片文件
    $Q卡宴 = imagecreatefromstring(file_get_contents($Q奥迪Q3));
    //输出图片
    imagepng($Q昂科雷, ‘qrcode.png’);
    imagedestroy($QRubicon);
    return ‘使用微信扫描支付‘;
    }
    //调用查看结果
    echo scerweima(”);

  2. 在转移的二维码中加上logo(生成图片文件)

    //2. 在转换的二维码中丰盛logo(生成图片文件)
    function scerweima1($url=”){
    require_once ‘phpqrcode.php’;
    $value = $url; //二维码内容
    $errorCorrectionLevel = ‘H’; //容错等级 $matrixPointSize = 6; //生成图片大小
    //生成二维码图片
    $filename = ‘qrcode/’.microtime().’.png’;
    Q凯雷德code::png($value,$filename , $errorCorrectionLevel, $matrixPointSize, 2);
    $logo = ‘qrcode/logo.jpg’; //策动好的logo图片
    $QRubicon = $filename; //已经生成的原始二维码图
    if (file_exists($logo)) {

     $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 / 4;   //组合之后logo的宽度(占二维码的1/5)
     $scale = $logo_width/$logo_qr_width;  //logo的宽度缩放比(本身宽度/组合后的宽度)
     $logo_qr_height = $logo_height/$scale; //组合之后logo的高度
     $from_width = ($QR_width - $logo_qr_width) / 2;  //组合之后logo左上角所在坐标点
     //重新组合图片并调整大小
     /*
      * imagecopyresampled() 将一幅图像(源图象)中的一块正方形区域拷贝到另一个图像中
      */
     imagecopyresampled($QR, $logo, $from_width, $from_width, 0, 0, $logo_qr_width,$logo_qr_height, $logo_width, $logo_height);
    

    }
    //输出图片
    imagepng($QENVISION, ‘qrcode.png’);
    imagedestroy($Q奇骏);
    imagedestroy($logo);
    return ‘使用微信扫描支付‘;
    }
    //调用查看结果
    echo scerweima1(”);

图片 1

  1. 生成二维码(不生成图片文件)

    //3. 生成原来的二维码(不生成图片文件)
    function scerweima2($url=”){
    require_once ‘phpqrcode.php’;
    $value = $url; //二维码内容
    $errorCorrectionLevel = ‘L’; //容错品级 $matrixPointSize = 5; //生成图片大小
    //生成二维码图片
    $Q福睿斯 = Q库罗德code::png($value,false,$errorCorrectionLevel, $matrixPointSize, 2);
    }
    //调用查看结果
    scerweima2(”);

前三种艺术,每调用壹回都会在地点生成一张二维码图片,第三种方法,不调换文书,会直接出口二维码到浏览器中。

PS:这里再为大家推荐五款二维码相关在线工具供大家参照他事他说加以考察运用:

在线生成二维码工具(抓牢版)

在线二维码解码识别工具

愈来愈多关于PHP相关内容感兴趣的读者可查阅本站专项论题:《PHP图形与图片操作技能汇总》、《PHP数组(Array)操作本领大全》、《PHP数据结构与算法教程》、《php程序设总计法计算》、《PHP数学生运动算技能总括》、《php字符串(string)用法总结》及《php常见数据库操作手艺汇总》

希望本文所述对大家PHP程序设计具有帮忙。

本文实例陈诉了PHP基于phpqrcode类生成二维码的不二诀窍。分享给我们供大家参照他事他说加以考查,具体如…

一、利用谷歌(Google) API生成二维码
 谷歌(Google)提供了较为完美的二维码生成接口,调用API接口很轻巧,以下是调用代码:

利用PHP语言生成二维码,仍旧挺有难度的,当然调用生成二维码图片的接口(比方:联图网

率先种艺术:

$urlToEncode="//www.jb51.net"; 
generateQRfromGoogle($urlToEncode); 
/** 
 * google api 二维码生成【QRcode可以存储最多4296个字母数字类型的任意文本,具体可以查看二维码数据格式】 
 * @param string $chl 二维码包含的信息,可以是数字、字符、二进制信息、汉字。 
 不能混合数据类型,数据必须经过UTF-8 URL-encoded 
 * @param int $widhtHeight 生成二维码的尺寸设置 
 * @param string $EC_level 可选纠错级别,QR码支持四个等级纠错,用来恢复丢失的、读错的、模糊的、数据。 
 * L-默认:可以识别已损失的7%的数据 
 * M-可以识别已损失15%的数据 
 * Q-可以识别已损失25%的数据 
 * H-可以识别已损失30%的数据 
 * @param int $margin 生成的二维码离图片边框的距离 
 */ 
function generateQRfromGoogle($chl,$widhtHeight ='150',$EC_level='L',$margin='0') 
{ 
 $chl = urlencode($chl); 
 echo '<img src="http://chart.apis.google.com/chart?chs='.$widhtHeight.'x'.$widhtHeight.' 
 &cht=qr&chld='.$EC_level.'|'.$margin.'&chl='.$chl.'" alt="QR code" widhtHeight="'.$widhtHeight.' 
 " widhtHeight="'.$widhtHeight.'"/>'; 
} 

最初筹划:

应用Google API生成二维码

二、使用PHP二维码生成类库PHP QLacrosse Code生成二维码  
PHP QR
Code是八个PHP二维码生成类库,利用它能够轻便生成二维码,官方网址提供了下载和多个示范demo,查看地址:。
下载官方网址提供的类库后,只须求选择phpqrcode.php就足以生成二维码了,当然你的PHP意况必须拉费用持GD2。
phpqrcode.php提供了二个最主要的png()方法,在那之中参数$text代表生成二位的的新闻文本;参数$outfile代表是或不是输出二维码图片
文件,暗中同意否;参数$level表示容错率,也正是有被掩盖的区域还是能够辨识,分别是
L(QTucson_ECLEVEL_L,7%),M(QR_ECLEVEL_M,15%),Q(QR_ECLEVEL_Q,25%),H(QR_ECLEVEL_H,四分之一);
参数$size代表生成图片大小,暗中同意是3;参数$margin表示二维码周围边框空白区域间距值;参数$saveandprint代表是不是保存二维码并
展现。

1.phpqrcode类文件下载,下载地址:
2.PHP境况必须拉费用持GD2扩张库援救(一般情状下都以敞开状态)

Google提供了相比周密的二维码生成接口,调用API接口很轻便,以下是调用代码:

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); 
} 

主意解读:

$urlToEncode="//www.jb51.net"; 
generateQRfromGoogle($urlToEncode); 
/** 
 * google api 二维码生成【QRcode可以存储最多4296个字母数字类型的任意文本,具体可以查看二维码数据格式】 
 * @param string $chl 二维码包含的信息,可以是数字、字符、二进制信息、汉字。 
 不能混合数据类型,数据必须经过UTF-8 URL-encoded 
 * @param int $widhtHeight 生成二维码的尺寸设置 
 * @param string $EC_level 可选纠错级别,QR码支持四个等级纠错,用来恢复丢失的、读错的、模糊的、数据。 
 *    L-默认:可以识别已损失的7%的数据 
 *    M-可以识别已损失15%的数据 
 *    Q-可以识别已损失25%的数据 
 *    H-可以识别已损失30%的数据 
 * @param int $margin 生成的二维码离图片边框的距离 
 */ 
function generateQRfromGoogle($chl,$widhtHeight ='150',$EC_level='L',$margin='0') 
{ 
 $chl = urlencode($chl); 
 echo '<img src="http://chart.apis.google.com/chart?chs='.$widhtHeight.'x'.$widhtHeight.' 
 &cht=qr&chld='.$EC_level.'|'.$margin.'&chl='.$chl.'" alt="QR code" widhtHeight="'.$widhtHeight.' 
 " widhtHeight="'.$widhtHeight.'"/>'; 
} 

调用PHP QR
Code特别轻巧,如下代码就可以生成一张内容为”//www.jb51.net”的二维码.
Php代码 
include ‘phpqrcode.php’;  
QRcode::png(‘//www.jb51.net’);  
 
那正是说实际上使用中,大家会在二维码的中等加上本身的LOGO,已提升宣传作用。那怎么生成含有logo的二维码呢?其实原理很轻巧,先利用PHP
QR
Code生成一张二维码图片,然后再利用php的image相关函数,将优先策动好的logo图片参与到刚生成的原始二维码图片其中,然后再一次生成一张新
的二维码图片。

下载下来的类公事是七个压缩包,里边包涵众多文件和演示程序,大家只必要中间的phpqrcode.php那三个文本就可以生成二维码了。它是三个多个类的集结文件,大家须要接纳里边的QPAJEROcode类(第2963行)的png()方法(第3090行):

动用PHP二维码生成类库PHP Q中华V Code生成二维码

include 'phpqrcode.php'; 
$value = '//www.jb51.net'; //二维码内容 
$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">'; 

发表评论

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