php生成个性二维码-CSDN博客

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

本篇引用  QRcode  PHP QR Code download | SourceForge.net  无需composer即可生成

下载后的类文件是一个压缩包里边包含很多文件和演示demo我们只需要里的phpqrcode.php这一个文件就可以生成二维码了。它是一个多个类的集合文件我们只用到了里边的QRcode的第3091行的png()方法

PHP环境必须开启支持GD2扩展库支持一般情况下都是开启状态

直接上代码  核心内容都进行了注释  

<?php
/**
 * Desc :
 * User : RoyalsZch
 * Date : 2023-11-07 09:29
 * @return
 */


namespace app\controller;

use think\facade\Db;
use think\facade\Request;


class qrCode
{
    public static function scerweima($url = '')
    {
        require_once 'D:\zch\testTest\tp\extend\phpqrcode\phpqrcode.php';

        $value = $url;                    //二维码内容

        $errorCorrectionLevel = 'L';    //容错级别
        $matrixPointSize = 5;            //生成图片大小

        $rootPath = root_path() . "public/uploads/qrcode";
        $dir = self::newDir($rootPath);
        //生成二维码图片
        $filename = $dir . time() . mt_rand(1000, 9999) . '.png';

        \QRcode::png($value, $filename, $errorCorrectionLevel, $matrixPointSize, 2);
        $QR = $filename;                //已经生成的原始二维码图片文

        $logo = 'C:\Users\***\Desktop\file.png';

        if (file_exists($logo)) {
            $QR = imagecreatefromstring(file_get_contents($filename));
            $logo = imagecreatefromstring(file_get_contents($logo));
            // logs('./log2.txt',$logo);
            $QR_width = imagesx($QR);//二维码图片宽度
            $QR_height = imagesy($QR);//二维码图片高度
            $logo_width = imagesx($logo);//logo图片宽度
            $logo_height = imagesy($logo);//logo图片高度
            $logo_qr_width = $QR_width / 3;
//            $scale = $logo_width/$logo_qr_width;
//            $logo_qr_height = $logo_height/$scale;
            $logo_qr_height = $logo_height/3;
            $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);
            //输出图片
            // Header("Content-type: image/png");
//            imagedestroy($QR);
        }



        //输出图片
        imagepng($QR, $filename);
        imagedestroy($QR);
        imagedestroy($logo);
        return $filename;
//        return '<img src="$filename" alt="使用微信扫描支付">';
    }

    public static function newDir($dir = 'qrcode')
    {
//按照年月日创建目录
        $file_path = "$dir" . '/' . date("Y") . '/' . date("m") . '/' . date("d") . '/';
//判断给定文件名是否是一个目录

        if (!is_dir($file_path)) mkdir($file_path, 777, true);
//        if (!is_dir($file_path)) {
//            if (mkdir($file_path, 777, true)) {
//                echo "创建递归文件夹成功";
//            } else {
//                echo "创建文件夹失败";
//            }
//        } else {
//            echo "该文件夹已经有了";
//        }
        return $file_path;
    }

//调用查看结果
    public static function newCode()
    {
        $nowPath = '?nowPath=' . Request::domain();
        $willPath = 'https://www.baidu.com';
        $finalPath = $willPath . $nowPath;

        echo self::scerweima($finalPath);
    }

//若想直接输出在浏览器中不生成图片文件则直接
//QRcode::png($value,false,$errorCorrectionLevel, $matrixPointSize, 2);

}
阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: php

“php生成个性二维码-CSDN博客” 的相关文章