tp5 thinkphp 使用phpqrcode生成带Logo的二维码
1 下载生成二维码类库
composer require aferrandini/phpqrcode
2 点击按钮下载
//二维码下载
public function down_qrcode()
{
if($this->request->isPost()){
$shop_id = input('shop_id');
$merchant_id = Db::table('xcf_shops')->where('shop_id',$shop_id)->value('merchant_id');
if($merchant_id){
$url = 'xcf'.$merchant_id; //二维码内容
$pic = $this->scerweima1($url);
return $pic;
}else{
return json(['s' => 'error', 'msg' => 'merchant_id不存在,请进行富友审核']);
}
} }
//生成二维码
//2. 在生成的二维码中加上logo(生成图片文件)
public function scerweima1($text){
//echo 'hee';die;
// dump(APP_XCF_LOG.'xcf.png');die;
//Vendor('chillerlan.php-qrcode.public.qrcode');
//$pathname = date("Ymd",time());
$pathname = APP_PATH . '/../public/upload/qrcode/';
if(!is_dir($pathname)) { //若目录不存在则创建之
mkdir($pathname,0777,true);
} $errorCorrectionLevel = 'H'; //容错级别
$matrixPointSize = 10; //生成图片大小
//生成二维码图片
$abc = date("Ymd",time()).time().'.png';
$filename = $pathname.$abc;
\PHPQRCode\QRcode::png($text,$filename , $errorCorrectionLevel, $matrixPointSize, 2);
$logo = APP_PATH . '/../public/assets/xcf_log/xcf.png'; //准备好的logo图片
// dump(APP_XCF_LOG.'xcf.png');die;
//dump($logo);die;
$QR = $filename; //已经生成的原始二维码图
// dump($QR);
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($QR,$filename); return request()->domain().'/upload/qrcode/'.$abc;
}
tp5 thinkphp 使用phpqrcode生成带Logo的二维码的更多相关文章
- phpqrcode生成带logo的二维码图片及带文字的二维码图片
<?php require_once "./phpqrcode/phpqrcode.php"; /** * 这样就可以生成二维码了,实际上在png这个方法里还有几个参数需要使 ...
- phpqrcode生成带logo的二维码图片
<?php //include_once('lib/QrReader.php'); //$qrcode = new QrReader('201708211144474410.jpg'); //图 ...
- PHP生成带logo图像二维码的两种方法
本文主要和大家分享PHP生成带logo图像二维码的两种方法,主要以文字和代码的形式和大家分享,希望能帮助到大家. 一.利用Google API生成二维码Google提供了较为完善的二维码生成接口,调用 ...
- C#生成带logo的二维码
带logo的二维码生成分为两步骤:首先根据输入的内容生成二维码图片,然后读取本地的logo图片,通过图片处理生成带logo的二维码. 生成的二维码效果如下: 下面直接贴出二维码生成类 QRCode ...
- .NET生成带Logo的二维码
使用ThoughtWorks.QRCode生成,利用这个库来生成带Logo的二维码(就是中间嵌了一个图片的二维码),直接见代码: HttpContext context = HttpContext.C ...
- C# ZXing.Net生成二维码、识别二维码、生成带Logo的二维码(二)
1.使用ZXint.Net生成带logo的二维码 /// <summary> /// 生成带Logo的二维码 /// </summary> /// <param name ...
- 涛哥的Python脚本工具箱之生成带Logo的二维码
近期须要在二维码上加Logo,网上没有找到好用的,于是自己用python写了一个. 须要安装qrcode,PIL库 二维码简称 QR Code(Quick Response Code),学名为高速响应 ...
- jQuery-qrcode.js 生成带Logo 的二维码
引入文件 jQuery-qrcode.js 地址:https://blog-static.cnblogs.com/files/kitty-blog/jquery-qrcode.js https:// ...
- JAVA生成带Logo的二维码
1.下载生成二维码所需要的jar包qrcode.jar: 2.直接上生成二维码的java代码 //需要导入的包 import java.awt.Color;import java.awt.Graphi ...
随机推荐
- xshell链接linux出现SSH服务器拒绝了密码 的解决方案
参考文章:https://blog.csdn.net/weixin_38554662/article/details/80589852 但是需要注意的是,ssh_config文件本来是没有权限修改的, ...
- C#-Newtonsoft.Json遍历并修改JSON
遍历 JObject:https://www.newtonsoft.com/json/help/html/JObjectProperties.htm 遍历 JArray: string json = ...
- 103、Linux 编译 Kaldi 语音识别工具
由于这个开源的语音识别工具Kaldi只能在Linux下面成功编译, 所以这一小节来写如何成功地在Linux下面编译Kaldi工具 (1)第一步,去github 上面把 Kaldi下载下来 git cl ...
- spring boot 尚桂谷学习笔记08 Docker ---Web
------Docker------ 简介:Docker是一个开元的应用容器引擎,性能非常高 已经安装好的软件打包成一个镜像放到服务器中运行镜像 MySQL容器,Redis容器...... Docke ...
- k8s-启动、退出动作
vim post.yaml apiVersion: v1 kind: Pod metadata: name: lifecycle-demo spec: containers: - name: life ...
- Redis测试类
单机&集群安装: https://blog.csdn.net/zxd1435513775/article/details/88901992 安装5.0.4版本OK,5.0.5版本make时报错 ...
- HDU 3406 Baseball of Planet Pandora
Baseball of Planet Pandora Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Ja ...
- LeetCode Array Easy 219. Contains Duplicate II
---恢复内容开始--- Description Given an array of integers and an integer k, find out whether there are two ...
- 解压 xxxx.cpio.gz.u-boot
xxxx.cpio.gz.u-boot 为 Ramdisk 文件. 是使用u-boot源码下 tools/mkimage 工具生成的. .u-boot = 64字节的头部信息 + Filesystem ...
- Django版本更新(升级)到指定版本的命令