index.php
<?php
header('Content-type:text/html;charset=UTF-8');
// 指定允许其他域名访问
header('Access-Control-Allow-Origin:*');
// 响应类型f
header('Access-Control-Allow-Methods:POST');
// 响应头设置
header('Access-Control-Allow-Headers:x-requested-with,content-type');
include 'phpqrcode.php';
//$uid = "100001";
$uid = $_POST["uid"];
$qrcodeurl = 'qrcode'.$uid.'.png';
$code = $uid.".png";
//二维码内容
$url = "http://域名/tp3.2/home/Wx2/code?uid=".$uid;//二维码内容
//容错级别
$errorCorrectionLevel = 'L';
//生成图片大小
$matrixPointSize = 4;
QRcode::png($url, $qrcodeurl, $errorCorrectionLevel, $matrixPointSize, 2);
//code【二维码+头像存放地址】、header【头像存放地址】、qrcode【二维码存放地址】
//准备好的logo图片,本人放在了根目录下
//头像地址[读数据库里面的头像具体到服务器的头像地址save_url]
//$logo = 'http://域名/tp3.2/Public/upload/header/header2.png';
require_once('file1.php');
$logo = func1($uid);
//已经生成的原始二维码图,也在根目录下
$qrcode = $qrcodeurl;
//logo图片存在
if ($logo !== FALSE) {
$qrcode = imagecreatefromstring(file_get_contents($qrcode));
$logo = imagecreatefromstring(file_get_contents($logo));
if (imageistruecolor($logo))
{
imagetruecolortopalette($logo, false, 65535);//添加这行代码来解决颜色失真问题
}
$qrcode_width = imagesx($qrcode); //二维码图片宽度
$qrcode_height = imagesy($qrcode); //二维码图片高度
$logo_width = imagesx($logo); //logo图片宽度
$logo_height = imagesy($logo); //logo图片高度
$logo_qr_width = $qrcode_width / 5;
$scale = $logo_width / $logo_qr_width;
$logo_qr_height = $logo_height / $scale;
$from_width = ($qrcode_width - $logo_qr_width) / 2;
//重新组合图片并调整大小
imagecopyresampled($qrcode, $logo, $from_width, $from_width, 0, 0, $logo_qr_width,
$logo_qr_height, $logo_width, $logo_height);
}
//输出图片
imagepng($qrcode, $code);//保存合成图片,命名logqr.png放在该地址中
imagedestroy($qrcode);
imagedestroy($logo);
if(file_exists($qrcodeurl)){ //存在二维码图片
unlink($qrcodeurl);
//echo '输出code3下面的图片为66存在二维码图片就删除222:'.'<img src="'.$code.'" >';
$showcode = "http://域名/code4/".$code;
$json = json_encode($showcode,JSON_UNESCAPED_UNICODE);
$json = str_replace("\\/","/",$json);//以免url地址被反编译
echo $json;
}
else { //不存在二维码图片
//echo '输出code3下面的图片为66不存在二维码图片就不管222:'.'<img src="'.$code.'" >';
$showcode = "http://域名/code4/".$code;
$json = json_encode($showcode,JSON_UNESCAPED_UNICODE);
$json = str_replace("\\/","/",$json);//以免url地址被反编译
echo $json;
}
//echo '输出的图片为66:'.'<img src="'.$code.'" >';
?> file.php <?php
function func1($uid)
{
$servername = 'IP';
$username = '用户名';
$password = '密码';
$dbname = '数据库名称';
$port = '端口';
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname,$port);
// Check connection
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
//$uid = "100001";
$sql = "SELECT header.save_url FROM header where uid='$uid'";
$result = $conn->query($sql);
$arr = mysqli_fetch_row($result);
$save_url = $arr[0];
$conn->close();
return $save_url;
}

php生成带自定义logo和带二维码跳转自定义地址的二维码的更多相关文章

  1. 用vue实现扫描二维码跳转页面功能

    怎么能用vue实现扫描二维码跳转页面功能 1. 安装依赖 npm install vue-qr --save 2. <template>   <div>     <div ...

  2. QRCode 扫描二维码、扫描条形码、相册获取图片后识别、生成带 Logo 二维码、支持微博微信 QQ 二维码扫描样式

    目录 功能介绍 常见问题 效果图与示例 apk Gradle 依赖 布局文件 自定义属性说明 接口说明 关于我 功能介绍 根据之前公司的产品需求,参考 barcodescanner 改的,希望能帮助到 ...

  3. phpqrcode 分别生成普通、带logo、带背景带logo二维码

    前提:下载好 phpqrcode 类库 1.生成普通二维码 //引入类库 include('phpqrcode/phpqrcode.php'); //二维码里面的链接地址 $url="htt ...

  4. 随手记一次利用开源zxing生成带嵌入logo的二维码图片

    之前就在项目里面用过zxing生成二维码,最近另一个项目同样需要用到二维码,故重新在学了学利用zxing生成二维码 接下来先做准备工作了,因为我是用vs2013上开发的,故选择了.net4.5版本的z ...

  5. 修改二维码生成插件jquery.qrcode.js支持加入自定义LOGO

    1,将jquery.qrcode.min.js和jquery添加到您的网页中 <script src="jquery.min.js"></script> & ...

  6. cookiecutter-flask生成的框架里边自带了一个CRUDMixin类

    单元测试的必要性 之前曾经写过一篇讲单元测试的,正好最近也在实践和摸索.我似乎有种洁癖,就是我会严格遵守流程性的东西,比如测试,注释和文档等.目前就职的公司在我接手项目的时候是没有一行单元测试的,我挺 ...

  7. C# 生成中间含有LOGO的二维码

    效果如下: 1.无LOGO的二维码: 2.含有LOGO的二维码: 一.下载QrCode程序集: 使用的程序集有: 下载地址: http://zxingnet.codeplex.com/ 二.QRCod ...

  8. PHP自定义生成二维码跳转地址

      比较简单的一款PHP自定义生成二维码跳转地址,手机端微信扫码,自动跳转到定义好的链接.支持自定义生成二维码尺寸.间距等.    鼠标悬浮显示二维码弹出层,离开后消失.js实现,代码如下: $(fu ...

  9. 我的Android进阶之旅------>Android自定义View实现带数字的进度条(NumberProgressBar)

    今天在Github上面看到一个来自于 daimajia所写的关于Android自定义View实现带数字的进度条(NumberProgressBar)的精彩案例,在这里分享给大家一起来学习学习!同时感谢 ...

随机推荐

  1. 产品相关 做产品VS做项目

    做产品VS做项目 by:授客 QQ:1033553122 相关定义 根据GB/T19000—2008<质量管理体系基础和术语>,有以下定义 过程process 一组将输入转化为输出的相互关 ...

  2. 如何利用API导出带有页眉页脚的excel

     在报表中设置的页眉页脚在页面中是看不到的,如下图: 页面中的效果: 在打印的时候,可以看到页眉页脚的效果: 那么,如果将页眉页脚导入到导出的excel中呢.我们可以通过API来进行设置: < ...

  3. python 字符串格式化符号含义及注释

    字符串格式化符号含义 符号 说明 %C 格式化字符及其ASCII码 %S 格式化字符串 %d 格式化整数 %o 格式化无符号八进制数 %x 格式化无符号十六进制数 %X 格式化无符号十六进制数(大写) ...

  4. CSS深入理解之float(HTML/CSS)

    float的设计初衷仅仅是:为了文字环绕效果 float的包裹与破坏 包裹:收缩.坚挺.隔绝(BFC) 破坏:父元素高度塌陷 <!DOCTYPE html> <html> &l ...

  5. 如何使用 Jenkins、GitHub 和 Docker 在 Azure 中的 Linux VM 上创建开发基础结构

    若要将应用程序开发的生成和测试阶段自动化,可以使用持续集成和部署 (CI/CD) 管道. 本教程介绍如何在 Azure VM 上创建 CI/CD 管道,包括如何: 创建 Jenkins VM 安装并配 ...

  6. teradata 查询创建表的时间

    如何查询teradata创建表的时间? select tablename,CreateTimeStamp from dbc.tables ---dbc的table,user是在dbc内的吗?具体不清楚 ...

  7. LocationCoder 地图经纬度解析

    LocationCoder 地图经纬度解析 其实,在地图里面将地图解析成有意义的地址,或者把地址转换成有意义的经纬度都是很容易的事情,只是我将其封装了支持KVO,通知中心,block取结果,代理取结果 ...

  8. 通过nginx 访问 centos 7 服务器上的.Net Core

    先安装依赖 # yum -y install pcre-devel openssl openssl-devel # yum -y install gcc gcc-c++ autoconf automa ...

  9. windows安装及配置mysql5.7

    引子 mysql官方网站上没有 windows mysql5.7 64位版本msi的安装包下载,我们可以通过zip版本解压缩后手动安装配置环境. msi安装的话有32位的,基本上就是看着图形界面来一步 ...

  10. java中常用Redis操作

     stringRedisTemplate.opsForValue().set("test", "100",60*10,TimeUnit.SECONDS);//向 ...