zoukankan      html  css  js  c++  java
  • phpqrcode 分别生成普通、带logo、带背景带logo二维码

    前提:下载好 phpqrcode 类库

    1、生成普通二维码

    //引入类库
    include('phpqrcode/phpqrcode.php');
    //二维码里面的链接地址
    $url="http://www.baidu.com";
    //二维码图片保存地址
    $save_path = "./qrcode.png";
    QRcode::png($url, $save_path, 'L', 4, 2);
    //后面两个参数控制二维码大小相关的,可自行调整

    2、生成带有logo的二维码

    //引入类库
    include('phpqrcode/phpqrcode.php');
    //二维码里面的链接地址
    $url="http://www.baidu.com";
    //二维码图片保存地址
    $save_path = "./qrcode.png";
    QRcode::png($url, $save_path, 'L', 4, 2);
    //后面两个参数控制二维码大小相关的,可自行调整
    
    //logo图片
    $logo = 'logo.png';
    if($logo){
            $QR = imagecreatefromstring(file_get_contents( $save_path ));
            $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 / 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, $save_path );
        }
    //首先生成普通二维码,然后添加上logo

    3、生成带logo带背景的二维码

    //引入类库
    include('phpqrcode/phpqrcode.php');
    //二维码里面的链接地址
    $url="http://www.baidu.com";
    //二维码图片保存地址
    $save_path = "./qrcode.png";
    QRcode::png($url, $save_path, 'L', 4, 2);
    //后面两个参数控制二维码大小相关的,可自行调整
    
    //添加logo
    $logo = 'logo.png';
    if($logo){
            $QR = imagecreatefromstring(file_get_contents( $save_path ));
            $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 / 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, $save_path );
        }
    
    //添加背景图
    $bgImg = 'xuanchuan.jpg';
    $backgroupImg = imagecreatefromstring(file_get_contents($bgImg));
    $newQR = imagecreatefromstring(file_get_contents($save_path));
    //获取新的尺寸
    list($width, $height) = getimagesize($save_path);
    $new_width = 200;
    $new_height = 200;
    //重新组合图片并调整大小
    imagecopyresampled($backgroupImg,$newQR,260, 700, 0, 0,$new_width, $new_height, $width, $height);//输出图片
    imagepng($backgroupImg, $save_path);
    //现在生成的图片就是有logo 有背景的
  • 相关阅读:
    vue截取video视频中的某一帧
    sm加密前端解析--JS实现国密算法SM2加密
    前端js解析识别图片二维码
    如果让你来设计一个分页功能, 你会怎么设计? 前后端如何交互?
    jQuery事件
    如何实现文件上传?说说你的思路
    实现JWT鉴权机制
    对中间件概念的理解,如何封装 node 中间件
    Node 文件查找的优先级以及 Require 方法的文件查找策略
    angularjs input使用ng-model双向绑定无效bug解决
  • 原文地址:https://www.cnblogs.com/myIvan/p/10292723.html
Copyright © 2011-2022 走看看