PHP 生成带logo二维码并修改背景颜色,利用画布布局二维样式
二维码
先上图
<?phpinclude 'lib/phpqrcode.php';
require_once 'lib/image.php';
$value = "localhost/1?sourcetype=3" . "&tablenum=2";//二维码内容$errorCorrectionLevel = 'L';//容错级别
$matrixPointSize = 20;//生成图片大小
//生成二维码图片
//开始生成
$color = [[255, 255, 255],//背景色[82, 103, 220],//定位角的颜色[82, 103, 220],//中间内容的颜色
];
//参数 活动模板图片,二维码url,模板内二维码的位置
/*** $template 背景图* $url 二维码内容* $sx,$y 坐标* $color 二维背景颜色*/
$template = 'qrimg.png';//背景图
$url = $value;
function getActivityImg($template, $url, $x, $y, $color)
{//二维码中间添加logo/******************************固定logo图片大小*******************************/$logo_raw = "1212.jpg";//logo图$imgHandle = new Image_process("$logo_raw");$imgHandle->fixSizeImage(150, 150); //固定logo图片大小值/******************************固定logo图片大小*******************************/$logo = "1212.jpg";//固定大小logo图路径$QR = "base.png";$last = "last.png";$errorCorrectionLevel = 'Q'; //防错等级$matrixPointSize = 8; //二维码大小//生成二维码//参数内容:二维码储存内容,生成存储,防错等级,二维码大小,白边大小\QRcode::png($url, $QR, $errorCorrectionLevel, $matrixPointSize, 1, false, $color);//合并logo跟二维码-----------------start$QR = imagecreatefromstring(file_get_contents($QR));$logo = imagecreatefromstring(file_get_contents($logo));$QR_width = imagesx($QR);$logo_width = imagesx($logo);$logo_height = imagesy($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, $last); // 生成带log的二维码图片 存储到last
// unlink('base.png');//删除二维底图//合并logo跟二维码-----------------end//合成带logo的二维码图片跟 模板图片--------------start$path_1 = $template;$path_2 = $last;//创建一块画布,并从 PNG 文件或 URL 地址载入一副图像$image_1 = imagecreatefrompng($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, $x, $y, 0, 0, imagesx($image_2), imagesy($image_2), 100);//合成带logo的二维码图片跟 模板图片--------------end//输出到本地文件夹$fileName = 'qr';$EchoPath = $fileName . '.png';imagepng($image_3, $EchoPath);imagedestroy($image_3);//画图createCanvas($EchoPath);//返回生成的路径
// echo "<img src='" . $EchoPath . "'>";
// echo "<img src='/qrcode/logo/logo.png'>";unlink('base.png');unlink('last.png');die;
}getActivityImg($template, $url, $x = 43, $y = 44, $color);//生成画布
function createCanvas($qrImg)
{//require_once 'lib/font.php';header('Content-type: text/html; charset=UTF8'); // UTF8不行改成GBK试试,与你保存的格式匹配
//第一:设定标头,告诉浏览器你要生成的MIME 类型header("Content-type: image/png");
//第二:创建一个画布,以后的操作都将基于此画布区域$codew = 500;$codeh = 560;
//最外层画布$codeimg = imagecreatetruecolor($codew, $codeh);
//底部画布$im = imagecreatetruecolor(500, 100);
//获取画布颜色$red = imagecolorallocate($codeimg, 255, 0, 0);$white = imagecolorallocate($codeimg, 255, 255, 255);$green = imagecolorallocate($codeimg, 75, 222, 26);$bule = imagecolorallocate($codeimg, 82, 103, 220);
//第三:填充画布背景颜色imagefill($codeimg, 0, 0, $white);
//底部颜色imagefill($im, 0, 0, $bule);
//第四:绘制线条 + 填充文字...
//imageline($codeimg, 0, 00, 30, 60, $white);
//imageline($codeimg, 0, 00, 50, 60, $white);
//imageline($codeimg, 0, 00, 80, 60, $white);$font_url = 'lib/msyh.ttf';
//填充文字
//imagestring($codeimg, 88, 210, 40, "storename", $bule);$content = "阿里巴巴!";imagettftext($codeimg, 12, 0, 210, 47, $bule, $font_url, $content);
//imagettftext($codeimg,15,0,210,40,$bule,$font_url);
//二维码$im_new = imagecreatefrompng("$qrImg");//返回图像标识符$im_new_info = getimagesize("$qrImg");//取得图像大小,返回一个数组。该函数不需要用到gd库。//添加二维码到画布imagecopy($codeimg, $im_new, 66, 75, 0, 0, $im_new_info[0], $im_new_info[1]);//返回布尔值
//添加一个小画布imagecopy($codeimg, $im, 0, 490, 0, 0, 500, 160);//返回布尔值
//底部字体$low_font = '111号桌扫码点餐';imagettftext($codeimg, 12, 0, 188, 527, $white, $font_url, $low_font);
//第五:输出创建的画布imagepng($codeimg);//imagepng($im);//输出到页面。如果有第二个参数[,$filename],则表示保存图像
//第六:销毁画布imagedestroy($codeimg);
// echo "<img src='qr.png'>";}
文件包下载
PHP 生成带logo二维码并修改背景颜色,利用画布布局二维样式相关推荐
- iOS 生成带 logo 的二维码,区域截屏保存至相册(小功能二连发 (一))
原文链接:http://www.jianshu.com/p/36e9f012ef39 生成带 logo 的二维码 区域截屏相关 -- 由3033分享 开篇 最近项目需要搞了几个相对独立的小功能,今天有 ...
- zxing生成带logo的二维码
倒Zxing依赖 implementation 'cn.bingoogolapple:bga-qrcode-zxing:1.2.1' 代码段 import android.graphics.Bitma ...
- Android Studio 生成二维码、生成带logo的二维码
1.生成二维码: 2.生成logo的二维码: 一.引入依赖 首先在libs文件目录下放进jar包zxing.jar,要下载zxing.jar就点击链接:下载zxing.jar(记得点击"Cd ...
- 使用zxing生成带logo的二维码图片,自动调节logo图片相对二维码图片的大小
使用zxing生成带logo的二维码图片,自动调节logo图片相对二维码图片的大小 * 可选是否带logo,可选是否保存二维码图片:结果返回base64编码的图片数据字符串 * 页面显示:< ...
- asp.net 后台生成二维码及生成带logo的二维码
asp.net 后台生成二维码及生成带logo的二维码,此处将生成二维码和带Logo的二维码写在一起的,需要自己区分一下. 直接上代码 using System; using System.Colle ...
- vue 生成带logo的二维码 qrcode-vue 支持下载图片 实例详解
最近的项目上有个需求,生成带logo的二维码,网上大部分都是基于JQ插件jQuery.qrcode.对于vue项目并不适用,翻阅了大量资料后,我找到了qrcode-vue这款基于vue的生成二维码的插 ...
- python—生成带logo的二维码(零基础向)
在python 中可以用qrcode 库将文本.图片.视频链接等生成二维码,并用图片处理库PIL 中的Image 方法添加自定义图片,制作带有logo的二维码.本文以Windows 系统为例进行演示. ...
- Golang使用qrcode生成二维码,以及生成带logo的二维码
添加并引用依赖 go get github.com/boombuler/barcodeimport ("github.com/skip2/go-qrcode" ) 1.生成字节形式 ...
- .NET ZXING 生成带logo的二维码和普通二维码及条型码
工作中使用到了,就随笔记下了.希望可以帮助有需要的同学们. /// <summary> /// 生成二维码 /// </summary> ...
最新文章
- 震惊了!关于JAVA复习的最佳敏捷实践!进BAT就是个毛毛雨!
- 《构建高可用Linux服务器》第一版勘误表(附脚本下载)
- VVOL、VASA — 为什么如此重要
- mysql命令行安装报错_centos命令行安装mysql随机密码查看方法(遇到问题及其解决办法)...
- django 灵活的后台查询
- MyBatis 源码解读-XMLConfigBuilder
- 嵌入式控制系统和计算机系统
- Kubernetes端到端解决方案Part3:如何正确部署Kubernetes
- 回帖整理和其他一些想法
- c++扫雷游戏代码_C语言学习教程,用C语言编写扫雷游戏
- python大数据毕设选题
- 运输问题的表上作业法
- linux中UDP编程
- 清华大学保研计算机推荐信模板,清华保研推荐信模板
- 《疯狂Python讲义》数字转人民币大写完整代码
- 2021-02-26
- 'javac'不是内部或外部命令,也不是可运行的程序或批处理文件.
- 腾讯云服务器漏洞怎么修复,腾讯云安全中心监测到微软披露的99个漏洞,win系统云服务器用户尽快修复...
- “临沂公众号推广平台”的操作流程是怎样的?
- mac 时间机器 禁用_如何在Mac上禁用屏幕时间通知
热门文章
- win10更新驱动后无声音问题
- Web3j使用教程(1)
- idea弹窗 Placing the unmodified important.txt in the zip file with the agent jar in the same directo
- 【头歌实验】五、Python循环结构
- 最好用的发短信(验证码、语音短信)接口
- 开源物业管理系统的对比
- Pymoo:优化算法的性能指标(Performance Indicators)
- Firefox 尝试与您指定的代理服务器连接时被拒绝
- vue项目报错:warning Disallow self-closing on HTML void elements (<img/>)
- NNI speedup_model()代码笔记