依赖库文件 phpqrcode.php

(下载地址://www.jb51.net/codes/189897.html ;或者在官网下载:http://phpqrcode.sourceforge.net)

本地演示文件代码下载(装环境即可)

百度网盘链接:https://pan.baidu.com/s/1L4dExJIJhbjrNa-hBrrdzg 密码:dmvs

代码逻辑:
1.生成一张url相关的 二维码 QR
2.把log图片跟QR合并成一个带logo的二维码 last
3.把带logo的的二维码跟 活动图片合成为一张图 保存到本地或直接输出图片

<?php 
/**
 * 生成管理员分销二维码
 * ============================================================================
 * ============================================================================
 * $Author: 戈丫汝 QQ:534208139
 * 2018-11-9 17:20:08Z
 */
require_once("./phpqrcode/phpqrcode.php");
//参数 活动模板图片,二维码url,模板内二维码的位置 $mes = getActivityImg('./images/123.png','http://shop.izhiwo.com',258,273);
print_r($mes);die;
function getActivityImg($template,$url,$x,$y)
{
      //二维码中间添加logo
      $logo = './images/logo.png';
      $QR = "base.png";
      $last = "last.png";
      $errorCorrectionLevel = 'Q'; //防错等级
      $matrixPointSize = 3; //二维码大小       //生成二维码
      //参数内容:二维码储存内容,生成存储,防错等级,二维码大小,白边大小
      QRcode::png($url, $QR, $errorCorrectionLevel, $matrixPointSize, 1);       //合并logo跟二维码
      $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       //合成带logo的二维码图片跟 模板图片
      $path_1 = $template; //背景图
      $path_2 = $last;  //带logo的二维码图
      $dst = imagecreatefromstring(file_get_contents($path_1));
      $src = imagecreatefromstring(file_get_contents($path_2));
      list($src_w, $src_h) = getimagesize($path_2);
      imagecopymerge($dst, $src, $x, $y, 0, 0, $src_w, $src_h, 100);
      list($dst_w, $dst_h, $dst_type) = getimagesize($path_1);
      
      //第一种:图片输出到页面
      /*switch ($dst_type) {
        case 1://GIF
            header('Content-Type: image/gif');
            imagegif($dst);
            break;
        case 2://JPG
            header('Content-Type: image/jpeg');
            imagejpeg($dst);
            break;
        case 3://PNG
            header('Content-Type: image/png');
            imagepng($dst);
            break;
        default:
            break;
    }
    imagedestroy($dst);
    imagedestroy($src);*/      //第二种:输出到本地文件夹,返回生成图片的路径
     $fileName= md5(rand(0,999));
     $EchoPath='./images/'.$fileName.'.png';
     imagepng($dst,$EchoPath);
     imagedestroy($dst);
     return $EchoPath;
}

时间:2019-03-31    新增代码 (需求:生成后的图片加文字)

以下代码放到输出图片代码前即可,其他不变,全部代码文字位置二维码位置都没有调试,需要的可以根据自己需求调试. END~~~

      //打上文字
$font = 'simsun.ttc';
//字体
$black = imagecolorallocate($dst, 0x00, 0x00, 0x00);
//字体颜色
imagefttext($dst, 13, 0, 20, 20, $black, $font, " 快乐编程快乐编程快乐\n编程快乐编程快乐编程快乐编程快乐编程\n编程快乐编程快乐编程快乐编.");
//输出图片
list($dst_w, $dst_h, $dst_type) = getimagesize($path_1);

php背景图片上生成二维码,二维码上带logo 代码示例 (原)的更多相关文章

  1. 使用PHP生成二维码的两种方法(带logo图像)

    一.利用Google API生成二维码 Google提供了较为完善的二维码生成接口,调用API接口很简单,以下是调用代码: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...

  2. 只能在堆上生成的对象 VS. 只能在栈上生成的对象

    1. 只能在堆上 即禁止在栈上生成.如何实现? 当对象建立在栈上面时,是由编译器分配内存空间的,调用构造函数来构造栈对象.如果类的析构函数是私有的,则编译器不会在栈空间上为类对象分配内存. 所以,只需 ...

  3. Python-气象-大气科学-可视化绘图系列(三)—— 地图上自动标注省会名称(demo调整中)(代码+示例)

    本文为原创文章 本文链接:https://www.cnblogs.com/zhanling/p/12606990.html # -*- coding: utf-8 -*- ''' Author: He ...

  4. C#(winform)为button添加背景图片,并去掉各种边框

    1.既然是添加背景图片 所以这里应该使用 Button.BackgroudImage = "" ;来设置图片 而不应该使用  Button.Image = "" ...

  5. 用c#每日更换“必应背景图片”为“桌面壁纸”

    必应每天都会更换背景图片,都非常漂亮,有的时候还十分惊艳,同时还会根据每个地区的特色不同应用不同的图片. 下面用c#抓取必应每天的背景图片,并实现桌面壁纸的每天自动切换 实现思路 1.通过获取&quo ...

  6. C#(winform)为button添加背景图片

    1.既然是添加背景图片 所以这里应该使用 Button.BackgroudImage = "" ;来设置图片 而不应该使用  Button.Image = "" ...

  7. CSS实现网页背景图片自适应全屏

    一张清晰漂亮的背景图片能给网页加分不少,设计师也经常会给页面的背景使用大图,我们既不想图片因为不同分辨率图片变形,也不希望当在大屏的情况下,背景有一块露白,简而言之,就是实现能自适应屏幕大小又不会变形 ...

  8. 关于background-image设置背景图片

    每天进步一小步,一年进步一大步. 本篇主要介绍背景图片设置,平铺,x y方向上的平铺,是否重复显示no repeat  显示的初始位置 background-image:url(images/inde ...

  9. CSS实现网页背景图片自适应全屏,自适应背景图片

    一张清晰漂亮的背景图片能给网页加分不少,设计师也经常会给页面的背景使用大图,我们既不想图片因为不同分辨率图片变形,也不希望当在大屏的情况下,背景有一块露白,简而言之,就是实现能自适应屏幕大小又不会变形 ...

随机推荐

  1. LUA 语言易混点

    --代码: tab1 = { key1 = "val1", key2 = "val2","val2", "val3" , ...

  2. [No000018B]写代码要用 Vim,因为越难入门的工具回报越大

    编者按:现在的技术界有一种倾向,将软件/应用操作简单化,用户能轻松上手.但是工具是否强大,取决于它能否灵活地满足使用者的各种需要.有些工具虽然很难入门,学会了便能对自己的操作有更深的层次的了解,能赋予 ...

  3. In abstract algebra, a congruence relation (or simply congruence) is an equivalence relation on an algebraic structure (such as a group, ring, or vector space) that is compatible with the structure in

    https://en.wikipedia.org/wiki/Congruence_relation In abstract algebra, a congruence relation (or sim ...

  4. ios -RunLoop(简单理解)

    一. RunLoop简介 RunLoop字面意思是运行时,即跑圈得意思.它可以在我们需要的时候自己跑起来运行,在我们没有操作的时候就停下来休息,充分节省CPU资源,提高程序性能. 二. RunLoop ...

  5. kafka可视化工具kafka tools

    一.下载 下载地址 选择windows 傻瓜式安装,选择安装路径,直接下一步就可以了 二. 使用 点击,运行 linux开启9092(broker)端口和2181(zookeeper)然后填写后,确定 ...

  6. scrapy windows下出现importError:No module named 'win32api'

    scrapy windows下出现importError:No module named 'win32api'需安装 pip install pypiwin32

  7. java 数组(二)

    public class ArrayDemo{ public static void main(String[] args){ int[] arr = {1,5,3,8,2,9,17,13}; get ...

  8. AT3611 Tree MST 点分治+最小生成树

    正解:点分治+最小生成树 解题报告: 传送门! 然后这题麻油翻译,,,所以这边的建议是先说下题意呢亲 所以题意大概就是说,给一棵n个节点的树,树上每个点都有个权值,然后构造一个完全图,(u,v)之间连 ...

  9. Java基础知识(抽象类和接口)

    一.抽象类 在了解抽象类之前,先来了解一下抽象方法.抽象方法是一种特殊的方法:它只有声明,而没有具体的实现.抽象方法的声明格式为: 1 abstract void fun(); 抽象方法必须用abst ...

  10. Python3学习之路~4.2 迭代器

    可以直接作用于for循环的数据类型有以下几种: 一类是集合数据类型,如list.tuple.dict.set.str等: 一类是generator,包括生成器和带yield的generator fun ...