Blogger Information
Blog 65
fans 1
comment 1
visits 119349
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
tp5 生成二维码
技术宅的博客
Original
1536 people have browsed it

使用扩展 Endroid\qrcode;

生成二维码 

$qrCode = new QrCode();
$qrCode->setText('Life is too short to be generating QR codes') // 一般设置地址
   ->setSize(300)
   ->setPadding(10)
   ->setErrorCorrection('high')
   ->setForegroundColor(['r' => 0, 'g' => 0, 'b' => 0, 'a' => 0])
   ->setBackgroundColor(['r' => 255, 'g' => 255, 'b' => 255, 'a' => 0])
   ->setLabel('Scan the code') // 下面的字 好像不支持中文
   ->setLabelFontSize(16)
   ->setImageType(QrCode::IMAGE_TYPE_PNG);
header('Content-Type: '.$qrCode->getContentType());
$qrCode->render(); // 渲染图片 需要加上exit; 不然就是乱码
$qrCode->save('qrcode.png');  // 图片保存路径  需要保存就用这个 
exit;

生成海报二维码(组装图片)

$qrCode = new QrCode();
      $qrCode->setText('Life is too short to be generating QR codes') // 一般设置地址
         ->setSize(180)
         ->setPadding(10)
         ->setErrorCorrection('high')
         ->setForegroundColor(['r' => 0, 'g' => 0, 'b' => 0, 'a' => 0])
         ->setBackgroundColor(['r' => 255, 'g' => 255, 'b' => 255, 'a' => 0])
//       ->setLabel('Scan the code') // 下面的字 好像不支持中文
         ->setLabelFontSize(16)
         ->setImageType(QrCode::IMAGE_TYPE_PNG);
      header('Content-Type: '.$qrCode->getContentType());
      $content=".\upload\shareqc\qrcodes.png";
      $qrCode->save($content);  // 图片保存路径
      // 组装合成图片 生成海报
      $path_1 = '.\upload\shareqc\1.jpeg';  // 背景图片
      $path_2 = $content; // 二维码图片
      $image_1 = imagecreatefromjpeg($path_1); // 注意图片后缀
      $image_2 = imagecreatefrompng($path_2); // 注意图片后缀
      $image_3 = imageCreatetruecolor(imagesx($image_1), imagesy($image_1));
      $color = imagecolorallocate($image_3, 255, 255, 255);
      imagefill($image_3, 0, 0, $color);
      imageColorTransparent($image_3, $color);
      imagecopyresampled($image_3, $image_1, 0, 0, 0, 0, imagesx($image_1), imagesy($image_1), imagesx($image_1), imagesy($image_1));
      imagecopymerge($image_3, $image_2, 260, 410, 0, 0, imagesx($image_2), imagesy($image_2), 100);
      // 调整图片位置 左上方就是0.0 位置 自己根据大小设置 260.410
      $img_url = './upload/shareqc/' . time() . ".jpeg"; // 生成图片名字地址
      $res = imagejpeg($image_3, $img_url); // 存储图片是否成功  成功返回true  以上海报制作完成  可以添加文字 如下面所示

给海报添加文字

putenv('GDFONTPATH=' . realpath('.')); //设置字体路径
$qrCode = new QrCode();
      $qrCode->setText('Life is too short to be generating QR codes') // 一般设置地址
         ->setSize(180)
         ->setPadding(10)
         ->setErrorCorrection('high')
         ->setForegroundColor(['r' => 0, 'g' => 0, 'b' => 0, 'a' => 0])
         ->setBackgroundColor(['r' => 255, 'g' => 255, 'b' => 255, 'a' => 0])
//       ->setLabel('Scan the code') // 下面的字 好像不支持中文
         ->setLabelFontSize(16)
         ->setImageType(QrCode::IMAGE_TYPE_PNG);
      header('Content-Type: '.$qrCode->getContentType());
      $content=".\upload\shareqc\qrcodes.png";
      $qrCode->save($content);  // 图片保存路径
      // 组装合成图片 生成海报
      $path_1 = '.\upload\shareqc\1.jpeg';  // 背景图片
      $path_2 = $content; // 二维码图片
      $image_1 = imagecreatefromjpeg($path_1); // 注意图片后缀
      $image_2 = imagecreatefrompng($path_2); // 注意图片后缀
      $image_3 = imageCreatetruecolor(imagesx($image_1), imagesy($image_1));
      $color = imagecolorallocate($image_3, 255, 255, 255);
      imagefill($image_3, 0, 0, $color);
      imageColorTransparent($image_3, $color);
      imagecopyresampled($image_3, $image_1, 0, 0, 0, 0, imagesx($image_1), imagesy($image_1), imagesx($image_1), imagesy($image_1));
      imagecopymerge($image_3, $image_2, 260, 410, 0, 0, imagesx($image_2), imagesy($image_2), 100);
      // 调整图片位置 左上方就是0.0 位置 自己根据大小设置 260.410
      $img_url = './upload/shareqc/' . time() . ".jpeg"; // 生成图片名字地址
      $res = imagejpeg($image_3, $img_url); // 存储图片是否成功  成功返回true  
     //  添加文字
      $dst = imagecreatefromstring(file_get_contents($img_url));
      /*操作图片*/
      //1.设置字体的路径
      $font = "msyh.ttf";  // 放在piblic 下面 最前面加上这句话设置路径的putenv('GDFONTPATH=' . realpath('.')); //设置字体路径
      //4.写入文字
      // 画布资源 字体大小 旋转角度 x轴 y轴 字体颜色 字体文件 需要渲染的字符串
      $black = imagecolorallocate($dst, 255, 255, 255); //字体颜色
      imagefttext($dst, 30, 0, 380, 1300, $black, $font, '扫一扫,关注我们');
      $img_add_url = './upload/shareqc/' . time() . ".jpeg";
      $res = imagejpeg($dst, $img_add_url);

大致效果  网上随便找的图 将就用一下 

1.jpegqrcodes.png

1568107010.jpeg


Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post