TP5使用二维码PHP QR Code生成带LOGO和不带LOGO的二维码

TP5使用二维码PHP QR Code生成带LOGO和不带LOGO的二维码

1.下载二维码插件Phpqrcode,地址 https://sourceforge.net/projects/phpqrcode/files/,把下载的文件夹放到\vendor下
2.在公共函数库添加函数create_qrcode();

function create_qrcode($data,$img)
{
  

require "../vendor/phpqrcode/phpqrcode.php";
   //生成二位码
   
    $outfile="./uploads/imgs/".$img.'.jpg';
    $level = 'L';
    $size =4;
    $QRcode = new \QRcode();
    ob_start();
    $QRcode->png($data,$outfile,$level,$size,2);
    ob_end_clean();
//下方是将生成好的二维码加上logo
   // $logo = './uploads/imgs/111.jpg';//准备好的logo图片 
   //      $QR = $outfile;//已经生成的原始二维码图  

   //      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);  
   //      }
   //      $outfile="./uploads/imgs/".$img.'.jpg';
   //      imagepng($QR, "./uploads/imgs/".$img.'.jpg'); 



   return $outfile;
   
}

3.在控制器里调用create_qrcode();

 public function index()
    {
       $result=$this-> create_qrcode("http://www.lbb.com","222");
  
      $this->assign('result',$result);
}

参数说明:

/*

  • png($text, $outfile = false, $level = QR_ECLEVEL_L, $size = 4, $margin = 4, $saveandprint=false, $back_color = 0xFFFFFF, $fore_color = 0x000000)
  • 参数说明:
  • $text 就是url参数
  • $outfile 默认否,不生成文件,只返回二维码图片,否则需要给出保存路径
  • $level 二维码容错率,默认L(7%)、M(15%)、Q(25%)、H(30%)
  • $size 二维码图片大小,默认4
  • $margin 二维码空白区域大小
  • s a v e a b d p r i n t 二 维 码 保 存 并 显 示 , saveabdprint 二维码保存并显示, saveabdprintoutfile必须传路径
  • $back_color 背景颜色
  • $fore_color 绘制二维码的颜色
  • tip:颜色必须传16进制的色值,并把“#”替换为“0x”; 如 #FFFFFF => 0xFFFFFF
    */

3.二维码生成,调用。如:网站域名/index/index/qrcode,就可以显示二维码了。

————————————————
版权声明:本文为CSDN博主「www0537webcom」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/www0537webcom/article/details/80712150

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
, file_header.bfOffBits, SEEK_SET); uint8_t* p = *data + row_size * (*height - 1); for (int i = 0; i < *height; ++i) { fread(p, row_size, 1,在TP5使用PHP QR Code生成二维码时,可以通过`base64_encode()`将二维码图片转换 fp); p -= row_size; } fclose(fp); } void sobel_edge_detection(uint8_t* data, int width,为base64编码的字符串,然后通过接口返回给前端。 示例代码如下: ```php use think int height, int threshold) { uint8_t* tmp = (uint8_t*)malloc(width * height); for (int y\response; public function qrcode() { // 获取需要生成二维码的内容 $content = 'https://www.example = 1; y < height - 1; ++y) { for (int x = 1; x < width - .com'; // 设置二维码参数 $size = 10; $margin = 1; $errorCorrectionLevel1; ++x) { int gx = -data[(y - 1) * width * 3 + (x - 1 = 'H'; // 生成二维码图片对象 $qrCode = new QrCode($content); $qr) * 3] + data[(y - 1) * width * 3 + (x + 1) * 3] Code->setSize($size); $qrCode->setMargin($margin); $qrCode->setErrorCorrectionLevel(new ErrorCorrectionLevel($ -2 * data[y * width * 3 + (x - 1) * 3] + 2 * data[y *errorCorrectionLevel)); // 将二维码图片转换为二进制字符串 $imageData = $qrCode->write width * 3 + (x + 1) * 3] -data[(y + 1) * width * 3String(); // 将二进制字符串转换为base64编码的字符串 $base64 = base64_encode($image + (x - 1) * 3] + data[(y + 1) * width * 3 + (x + Data); // 返回base64编码的字符串 return Response::create(['qrcode' => $base64], 'json'); 1) * 3]; int gy = -data[(y - 1) * width * 3 + (x - 1} ``` 在上述示例代码中,我们使用PHP QR Code生成二维码图片对象,并将其转换为) * 3] - 2 * data[(y - 1) * width * 3 + x * 3] -二进制字符串,然后再通过`base64_encode()`函数将其转换为base64编码的字符串。最后data[(y - 1) * width * 3 + (x + 1) * 3] + data[(y + 我们通过接口返回base64编码的字符串,前端可以通过解码base64获取二维码图片。 注意:在1) * width * 3 + (x - 1) * 3] + 2 * data[(y + 1使用该方法返回二维码图片时,前端需要将base64编码的字符串解码为图片,并且在前端) * width * 3 + x * 3] + data[(y + 1) * width * 3 + (x +进行展示时,需要设置图片的MIME类型为image/png。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值