PHP生成页面二维码解决办法?详解

随着科技的进步,二维码应用领域越来越广泛,今天我给大家分享下如何使用PHP生成二维码,以及如何生成中间带LOGO图像的二维码。

具体工具

phpqrcode.php内库;这个文件可以到网上下载,如果没有可以加我微信 webolol 和我要下;

具体方法

使用PHP二维码生成类库PHP QR Code生成二维码:

<?php 
//引入phpqrcode库文件
include('phpqrcode.php');
$data = 'http://www.baidu.com'; //生成二维码的数据
$filename = 'fyz.png'; //生成二维码的图片名称 
$errorCorrectionLevel = 'L'; //纠错级别:L、M、Q、H 
$matrixPointSize = 3; //点的大小
//创建并生成二维码
QRcode::png($data,$filename,$errorCorrectionLevel,$matrixPointSize,2);
//方式一:输出二维码
//QRcode::png($data);
//方式二:输出二维码
//echo "<img src='".$filename."'>";
//完成到这里就已经可以生成二维码了
//二维码中镶嵌 logo 
$logo = 'logo.png';//logo图片
$QR = 'fyz.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,'testImg.png');
echo "<img src='testImg.png'>";

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

posted @ 2017-06-20 16:13  帅到要去报警  阅读(1242)  评论(0编辑  收藏  举报