PHP生成带logo图片的二维码类

发布时间:2018年10月15日      浏览次数:712 次
##############################################################
//调用生成二维码类 代码,保存为Create_qrcode.php
##############################################################
<?
session_start();
header("content-type:text/html; charset=utf-8");
include_once("qrcode_func.php");

$data = "XXXX"; //要生成二维码的数据,可以是文本或网址
$img_url = "qrcode.png"; //要生成的二维码图片
$logo_url = "logo.png"; //准备好的logo图片
Create_QRcode($data, $img_url, $logo_url); //生成二维码

//生成二维码函数
function Create_QRcode($data, $img_url, $logo_url){
      if ( trim($data) == "" or trim($img_url) == "" ) return;
      
      $errorCorrectionLevel = 'H'; //纠错级别:L、M、Q、H
      $matrixPointSize = 10; //点的大小:1到10
      QRcode::png($data, $img_url, $errorCorrectionLevel, $matrixPointSize, 2); //生成一个纯二维码图片
      
      //生成带Logo的二维码
      $logo = $logo_url;//准备好的logo图片
      $QR = $img_url;//已经生成的原始二维码图
      
      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, $img_url);
      }
      return;
}
?>


##############################################################
//PHP生成二维码类 保存为:qrcode_func.php
##############################################################
免责声明:本站相关技术文章信息部分来自网络,目的主要是传播更多信息,如果您认为本站的某些信息侵犯了您的版权,请与我们联系,我们会即时妥善的处理,谢谢合作!