php 创建带logo二维码类

PHP生成二维码名片带LOGO并解决LOGO失真 阅读详情

本文介绍php实现创建二维码类,支持设置尺寸,加入LOGO,描边、圆角、透明度,等处理。提供完整代码,演示实例及详细参数说明,方便大家学习使用。

实现功能如下:

1.创建二维码
2.加入logo到二维码中
3.logo可描边
4.logo可圆角
5.logo可设透明度
6.logo图片及输出图片类型支持png,jpg,gif格式
7.可设置输出图片质量

设定参数说明:

ecc
二维码质量 L-smallest, M, Q, H-best

size
二维码尺寸 1-50

dest_file
生成的二维码图片路径

quality
生成的图片质量

logo
logo路径,为空表示不加入logo

logo_size
logo尺寸,null表示按二维码尺寸比例自动计算

logo_outline_size
logo描边尺寸,null表示按logo尺寸按比例自动计算

logo_outline_color
logo描边颜色

logo_opacity
logo不透明度 0-100

logo_radius
logo圆角角度 0-30

代码如下:

PHPQRCode.class.php

<?php
require_once dirname(__FILE__)."/qrcode/qrlib.php";

/**
 * PHP创建二维码类
 * Date:    2018-03-18
 * Author:  fdipzone
 * Version: 1.0
 *
 * Description:
 * PHP实现创建二维码类,支持设置尺寸,加入LOGO,圆角,透明度,等处理。
 *
 * Func:
 * public  set_config           设定配置
 * public  generate             创建二维码
 * private create_qrcode        创建纯二维码图片
 * private add_logo             合拼纯二维码图片与logo图片
 * private image_outline        图片对象进行描边
 * private image_fillet         图片对象进行圆角处理
 * private imagecopymerge_alpha 合拼图片并保留各自透明度
 * private create_dirs          创建目录
 * private hex2rgb              hex颜色转rgb颜色
 * private get_file_ext         获取图片类型
 */
class PHPQRCode{ // class start

    /** 默认设定 */
    private $_config = array(
        'ecc' => 'H',                       // 二维码质量 L-smallest, M, Q, H-best
        'size' => 15,                       // 二维码尺寸 1-50
        'dest_file' => 'qrcode.png',        // 创建的二维码路径
        'quality' => 100,                    // 图片质量
        'logo' => '',                       // logo路径,为空表示没有logo
        'logo_size' => null,                // logo尺寸,null表示按二维码尺寸比例自动计算
        'logo_outline_size' => null,        // logo描边尺寸,null表示按logo尺寸按比例自动计算
        'logo_outline_color' => '#FFFFFF',  // logo描边颜色
        'logo_opacity' => 100,              // logo不透明度 0-100
        'logo_radius' => 0,                 // logo圆角角度 0-30
    );

    /**
     * 设定配置
     * @param  Array   $config 配置内容
     */
    public function set_config($config){

        // 允许设定的配置
        $config_keys = array_keys($this->_config);

        // 获取传入的配置,写入设定
        foreach($config_keys as $k=>$v){
            if(isset($config[$v])){
                $this->_config[$v] = $config[$v];
            }
        }

    }

    /**
     * 创建二维码
     * @param  String $data 二维码内容
     * @return String
     */
    public function generate($data){

        // 创建临时二维码图片
        $tmp_qrcode_file = $this->create_qrcode($data);

        // 合拼临时二维码图片与logo图片
        $this->add_logo($tmp_qrcode_file);

        // 删除临时二维码图片
        if($tmp_qrcode_file!='' && file_exists($tmp_qrcode_file)){
            unlink($tmp_qrcode_file);
        }

        return file_exists($this->_config['dest_file'])? $this->_config['dest_file'] : '';

    }

    /**
     * 创建临时二维码图片
     * @param  String $data 二维码内容
     * @return String
     */
    private function create_qrcode($data){

        // 临时二维码图片
        $tmp_qrcode_file = dirname(__FILE__).'/tmp_qrcode_'.time().mt_rand(100,999).'.png';

        // 创建临时二维码
        QRcode::png($data, $tmp_qrcode_file, $this->_config['ecc'], $this->_config['size'], 2);

        // 返回临时二维码路径
        return file_exists($tmp_qrcode_file)? $tmp_qrcode_file : '';

    }

    /**
     * 合拼临时二维码图片与logo图片
     * @param String $tmp_qrcode_file 临时二维码图片
     */
    private function add_logo($tmp_qrcode_file){

        // 创建目标文件夹
        $this->create_dirs(dirname($this->_config['dest_file']));

        // 获取目标图片的类型
        $dest_ext = $this->get_file_ext($this->_config['dest_file']);

        // 需要加入logo
        if(file_exists($this->_config['logo'])){

            // 创建临时二维码图片对象
            $tmp_qrcode_img = imagecreatefrompng($tmp_qrcode_file);

            // 获取临时二维码图片尺寸
            list($qrcode_w, $qrcode_h, $qrcode_type) = getimagesize($tmp_qrcode_file);

            // 获取logo图片尺寸及类型
            list($logo_w, $logo_h, $logo_type) = getimagesize($this->_config['logo']);

            // 创建logo图片对象
            switch($logo_type){  
                case 1: $logo_img = imagecreatefromgif($this->_config['logo']); break;  
                case 2: $logo_img = imagecreatefromjpeg($this->_config['logo']); break;  
                case 3: $logo_img = imagecreatefrompng($this->_config['logo']); break;  
                default: return '';  
            }

            // 设定logo图片合拼尺寸,没有设定则按比例自动计算
            $new_logo_w = isset($this->_config['logo_size'])? $this->_config['logo_size'] : (int)($qrcode_w/5);
            $new_logo_h = isset($this->_config['logo_size'])? $this->_config['logo_size'] : (int)($qrcode_h/5);

            // 按设定尺寸调整logo图片
            $new_logo_img = imagecreatetruecolor($new_logo_w, $new_logo_h);
            imagecopyresampled($new_logo_img, $logo_img, 0, 0, 0, 0, $new_logo_w, $new_logo_h, $logo_w, $logo_h);

            // 判断是否需要描边
            if(!isset($this->_config['logo_outline_size']) || $this->_config['logo_outline_size']>0){
                list($new_logo_img, $new_logo_w, $new_logo_h) = $this->image_outline($new_logo_img);
            }

            // 判断是否需要圆角处理
            if($this->_config['logo_radius']>0){
                $new_logo_img = $this->image_fillet($new_logo_img);
            }

            // 合拼logo与临时二维码
            $pos_x = ($qrcode_w-$new_logo_w)/2;
            $pos_y = ($qrcode_h-$new_logo_h)/2;

            imagealphablending($tmp_qrcode_img, true);

            // 合拼图片并保留各自透明度
            $dest_img = $this->imagecopymerge_alpha($tmp_qrcode_img, $new_logo_img, $pos_x, $pos_y, 0, 0, $new_logo_w, $new_logo_h, $this->_config['logo_opacity']);

            // 生成图片
            switch($dest_ext){
                case 1: imagegif($dest_img, $this->_config['dest_file'], $this->_config['quality']); break;
                case 2: imagejpeg($dest_img, $this->_config['dest_file'], $this->_config['quality']); break;
                case 3: imagepng($dest_img, $this->_config['dest_file'], (int)(($this->_config['quality']-1)/10)); break;
            } 

        // 不需要加入logo
        }else{

            $dest_img = imagecreatefrompng($tmp_qrcode_file);

            // 生成图片
            switch($dest_ext){
                case 1: imagegif($dest_img, $this->_config['dest_file'], $this->_config['quality']); break;
                case 2: imagejpeg($dest_img, $this->_config['dest_file'], $this->_config['quality']); break;
                case 3: imagepng($dest_img, $this->_config['dest_file'], (int)(($this->_config['quality']-1)/10)); break;
            }
        }

    }

    /**
     * 对图片对象进行描边
     * @param  Obj   $img 图片对象
     * @return Array
     */
    private function image_outline($img){

        // 获取图片宽高
        $img_w = imagesx($img);
        $img_h = imagesy($img);

        // 计算描边尺寸,没有设定则按比例自动计算
        $bg_w = isset($this->_config['logo_outline_size'])? intval($img_w + $this->_config['logo_outline_size']) : $img_w + (int)($img_w/5);
        $bg_h = isset($this->_config['logo_outline_size'])? intval($img_h + $this->_config['logo_outline_size']) : $img_h + (int)($img_h/5);

        // 创建底图对象
        $bg_img = imagecreatetruecolor($bg_w, $bg_h);

        // 设置底图颜色
        $rgb = $this->hex2rgb($this->_config['logo_outline_color']);
        $bgcolor = imagecolorallocate($bg_img, $rgb['r'], $rgb['g'], $rgb['b']);

        // 填充底图颜色
        imagefill($bg_img, 0, 0, $bgcolor);

        // 合拼图片与底图,实现描边效果
        imagecopy($bg_img, $img, (int)(($bg_w-$img_w)/2), (int)(($bg_h-$img_h)/2), 0, 0, $img_w, $img_h);

        $img = $bg_img;

        return array($img, $bg_w, $bg_h);

    }

    /**
     * 对图片对象进行圆角处理
     * @param  Obj $img 图片对象
     * @return Obj
     */
    private function image_fillet($img){

        // 获取图片宽高
        $img_w = imagesx($img);
        $img_h = imagesy($img);

        // 创建圆角图片对象
        $new_img = imagecreatetruecolor($img_w, $img_h);

        // 保存透明通道
        imagesavealpha($new_img, true);

        // 填充圆角图片
        $bg = imagecolorallocatealpha($new_img, 255, 255, 255, 127);
        imagefill($new_img, 0, 0, $bg);

        // 圆角半径
        $r = $this->_config['logo_radius'];

        // 执行圆角处理
        for($x=0; $x<$img_w; $x++){
            for($y=0; $y<$img_h; $y++){
                $rgb = imagecolorat($img, $x, $y);

                // 不在图片四角范围,直接画图
                if(($x>=$r && $x<=($img_w-$r)) || ($y>=$r && $y<=($img_h-$r))){
                    imagesetpixel($new_img, $x, $y, $rgb);

                // 在图片四角范围,选择画图
                }else{
                    // 上左
                    $ox = $r; // 圆心x坐标
                    $oy = $r; // 圆心y坐标
                    if( ( ($x-$ox)*($x-$ox) + ($y-$oy)*($y-$oy) ) <= ($r*$r) ){
                        imagesetpixel($new_img, $x, $y, $rgb);
                    }

                    // 上右
                    $ox = $img_w-$r; // 圆心x坐标
                    $oy = $r;        // 圆心y坐标
                    if( ( ($x-$ox)*($x-$ox) + ($y-$oy)*($y-$oy) ) <= ($r*$r) ){
                        imagesetpixel($new_img, $x, $y, $rgb);
                    }

                    // 下左
                    $ox = $r;        // 圆心x坐标
                    $oy = $img_h-$r; // 圆心y坐标
                    if( ( ($x-$ox)*($x-$ox) + ($y-$oy)*($y-$oy) ) <= ($r*$r) ){
                        imagesetpixel($new_img, $x, $y, $rgb);
                    }

                    // 下右
                    $ox = $img_w-$r; // 圆心x坐标
                    $oy = $img_h-$r; // 圆心y坐标
                    if( ( ($x-$ox)*($x-$ox) + ($y-$oy)*($y-$oy) ) <= ($r*$r) ){
                        imagesetpixel($new_img, $x, $y, $rgb);
                    }

                }

            }
        }

        return $new_img;

    }

    // 合拼图片并保留各自透明度
    private function imagecopymerge_alpha($dest_img, $src_img, $pos_x, $pos_y, $src_x, $src_y, $src_w, $src_h, $opacity){

        $w = imagesx($src_img);
        $h = imagesy($src_img);

        $tmp_img = imagecreatetruecolor($src_w, $src_h);

        imagecopy($tmp_img, $dest_img, 0, 0, $pos_x, $pos_y, $src_w, $src_h);
        imagecopy($tmp_img, $src_img, 0, 0, $src_x, $src_y, $src_w, $src_h);
        imagecopymerge($dest_img, $tmp_img, $pos_x, $pos_y, $src_x, $src_y, $src_w, $src_h, $opacity);

        return $dest_img;

    }

    /**
     * 创建目录
     * @param  String  $path
     * @return Boolean
     */
    private function create_dirs($path){

        if(!is_dir($path)){
            return mkdir($path, 0777, true);
        }

        return true;

    }

    /** hex颜色转rgb颜色
     *  @param  String $color hex颜色
     *  @return Array
     */
    private function hex2rgb($hexcolor){
        $color = str_replace('#', '', $hexcolor);
        if (strlen($color) > 3) {
            $rgb = array(
                'r' => hexdec(substr($color, 0, 2)),
                'g' => hexdec(substr($color, 2, 2)),
                'b' => hexdec(substr($color, 4, 2))
            );
        } else {
            $r = substr($color, 0, 1) . substr($color, 0, 1);
            $g = substr($color, 1, 1) . substr($color, 1, 1);
            $b = substr($color, 2, 1) . substr($color, 2, 1);
            $rgb = array(
                'r' => hexdec($r),
                'g' => hexdec($g),
                'b' => hexdec($b)
            );
        }
        return $rgb;
    }

    /** 获取图片类型 
     * @param  String $file 图片路径 
     * @return int 
     */  
    private function get_file_ext($file){
        $filename = basename($file);
        list($name, $ext)= explode('.', $filename);

        $ext_type = 0;

        switch(strtolower($ext)){
            case 'jpg':
            case 'jpeg':
                $ext_type = 2;
                break;
            case 'gif':
                $ext_type = 1;
                break;
            case 'png':
                $ext_type = 3;
                break;
        }

        return $ext_type;
    }

} // class end
?>

demo.php

<?php
require 'PHPQRCode.class.php';

$config = array(
        'ecc' => 'H',    // L-smallest, M, Q, H-best
        'size' => 12,    // 1-50
        'dest_file' => 'qrcode.png',
        'quality' => 90,
        'logo' => 'logo.jpg',
        'logo_size' => 100,
        'logo_outline_size' => 20,
        'logo_outline_color' => '#FFFF00',
        'logo_radius' => 15,
        'logo_opacity' => 100,
);

// 二维码内容
$data = 'http://weibo.com/fdipzone';

// 创建二维码类
$oPHPQRCode = new PHPQRCode();

// 设定配置
$oPHPQRCode->set_config($config);

// 创建二维码
$qrcode = $oPHPQRCode->generate($data);

// 显示二维码
echo '<img src="'.$qrcode.'?t='.time().'">';
?>

 
生成的二维码图片:
这里写图片描述

源码下载地址:点击查看

生成带logo的微信二维码详解 在做项目时候研究了好久希望大家都能用到嘻嘻!!!1.首先封装二维码生成函数//生成二维码    public function getQrcode(){        $access_token = (new WeiXin)-&gt;AccessToken();        $scene='扫码传过去的参数';        $url = "https://api.weixin.qq.com/c... 阅读详情

相关推荐

TP5使用二维码PHP QRCode生成带LOGO和不带LOGO的二维码

首先下载这个类:http://phpqrcode.sourceforge.net/ 然后,把下载的文件放到thinkphp/library/Vendor下面,(注意:Vendor的首字母大写。没有的话创建一个文件夹。) 接着在根目录下vendor下面上传phpqrcode。 然后再需要调用的方法里面调用就可以了: public function getWchatQrcode($users_id...

Yan 小铁匠 626

PHP使用phpqrcode类库生成带LOGO的二维码图片函数处理的源代码!

PHP使用phpqrcode类库生成带LOGO的二维码图片函数处理的源代码! 适用于PHP版本 > PHP5.6。话不多说,直接上代码!

我的ID:sumer-work(全网同名)昵称:程序员SUMER(全网同名) 691

PHP 生成邀请二维码(带字带logo)

PHP 生成邀请二维码带logo 原图: logo(带白边) 生成效果图

echoxiaojian的博客 753

PHP使用QR Code生成二维码logo参数

指定二维码的logo和参数

coder_Mr的博客 1120

使用PHP生成带有Logo的二维码的方法概述

本文介绍了使用PHP生成带有Logo的二维码的方法。通过使用"endroid/qr-code"库,我们可以轻松地生成具有自定义Logo的二维码。二维码在现代生活中广泛应用,而将自定义Logo添加到二维码中可以提升品牌识别度和用户体验。在本文中,我们将探讨使用PHP生成带有Logo的二维码的方法,并提供相应的源代码示例。接下来,我们可以选择设置二维码的错误修正级别,可选的级别包括。方法将生成的带有Logo的二维码保存到指定的文件路径中。替换为您自己的Logo文件路径,并创建适当的输出路径。

PeGroovy的博客 379

PHPQRcode设置背景色和线条颜色来生成多彩二维码.zip

PHPQRcode设置背景色和线条颜色来生成多彩二维码

PHP生成二维码+二维码包含logo图片展示

前端你自己列表读uploads/admin/qrcode/‘.$aid.’.png这个就行。生成二维码包含logo图片(代码仅供参考,逻辑按照自己的写)用到的扩展自己安装(注:只生成二维码只要开gd扩展就行)

颜夕_ 937

Win11如何更改用户文件夹名(完整流程- 已验证可行)

把C盘所有文件备份,如果不想备份,则选择创建一个C盘的系统还原点(能在后续把C盘玩崩之后恢复原状)

Y_Aryan的博客 5万+

PHP使用phpqrcode生成带LOGO或文字的二维码

PHP使用phpqrcode生成带LOGO或文字的二维码

懒虫的博客 988

第二十届全国大学生智能车竞赛-地瓜机器人智慧医疗挑战赛技术解析与实战指南

本文深入解析了第二十届全国大学生智能车竞赛-地瓜机器人智慧医疗挑战赛的核心技术。内容涵盖从零搭建数字孪生环境、实现AI视觉任务(二维码识别、引导线追踪、目标检测)、在边缘设备部署轻量化大模型进行图生文描述,到遥操作与自主控制的平滑切换,并提供了基于ROS2的系统集成与赛场实战指南,助力参赛者高效备赛。

weixin_29252171的博客 2778

Unity中实现HLS视频加密与流式播放的完整方案

本文详细介绍了在Unity中实现HLS视频加密与流式播放的完整方案。针对Unity原生VideoPlayer无法直接支持实时解密的问题,提出了基于HLS协议与AES-128加密的成熟解决方案,并重点阐述了如何利用AVPro Video插件进行集成。文章涵盖了从密钥生成、使用FFmpeg进行视频加密切片,到在Unity中动态加载密钥并播放加密流的全流程,为保护付费课程、独家动画等视频内容提供了安全且高效的实践路径。

weixin_29290963的博客 393

[PHP] phpqrcode 生成带LOGO二维码,并打包下载

[PHP] phpqrcode 生成带LOGO二维码,并打包下载生成二维码QRcode::png() 参数说明ZIP打包下载 基于 phpqrcode 生成二维码,带LOGO 官网下载完整的 phpqrcode 库文件,下载地址 生成二维码 /** * 导出二维码 -- 格式为所有二维码图片 * @param $ercode_list 二维码链接数组,我的数组包含两个参...

chritina的专栏 2345

微型纵向加密在新能源场站中的实战部署与运维避坑指南

本文详细解析了微型纵向加密在新能源场站中的实战部署与运维技巧。通过国密算法SM4实现数据加密,确保新能源场站通信安全,同时提供非侵入式部署方案和运维避坑指南,帮助提升网络稳定性和运维效率。

weixin_30505225的博客 599

php结合phpqrcode生成带图片LOGO的二维码

PHP生成带LOGO的二维码,或许很多高手都已经实现了,但之前并没有过多关注这方面,这段有个小项目要用到二维码生成,索引就查了些资料,发些有一个PHP 类库phpqrcode对生成这种二维码很方便,索引就测试了一下,下面把自己的用法和代码与菜鸟分享,希望高手鼓励哦。 首先你需要下载这个类库包,或者我后边会附上这个类库,具体的使用代码: <?php //文件输出 in

shanshuiboy的专栏 1073

Apple CarPlay Certification Guide December 2022 解析V1.0

Apple CarPlay Certification Guide December 2022更新说明

m0_74450450的博客 706

芯擎SEC1000芯片参数详细介绍

随着龙鹰一号的不断进化和应用,未来的智能座舱将不仅仅是显示和控制的集成,更是人与车之间的一种默契和无缝交互的体现。在汽车行业迈向智能化和电动化的浪潮中,座舱已不仅仅是一个驾驶者的操作空间,而是逐渐演变为一个集娱乐、信息、控制于一体的智能交互平台。今天的汽车不仅需要强劲的动力和炫酷的外观,更需要一颗强大而智能的“心脏”来支撑复杂的座舱体验和安全驾驶需求。想象一下,未来的汽车不再仅仅是交通工具,它将成为你的移动私人管家,了解你的习惯,甚至提前预测你的需求。让我们一起走进龙鹰一号的世界,探索智能座舱的无限可能!

weixin_43199439的博客 1725

PHP生成二维码,带logo和不带logo和动态二维码(二维码是动态的,不用生成图片)两种方式

引入phpqrcode.php 下载phpqrcode.php include_once "../include/phpqrcode.php"; 不带logo生成二维码 $value = 'http://www.helloweba.com'; //二维码内容 $errorCorrectionLevel = 'L';//容错级别 $matrixPointSize = 6;//生成图片大小 //生成二维码图片 QRcode::png($value, 'qrcode.pn..

qq_34297991的博客 675

《大数据之路:阿里巴巴大数据实践》-第1篇 数据技术篇 -第3章数据同步

我们将数据釆集分为日志采集和数据库数据同步两 部分。数据同步技术更通用的含义是不同系统间的数据流转,有多种不 同的应用场景。主数据库与备份数据库之间的数据备份,以及主系统与 子系统之间的数据更新,属于同类型不同集群数据库之间的数据同步。 另外,还有不同地域、不同数据库类型之间的数据传输交换,比如分布 式业务系统与数据仓库系统之间的数据同步。对于大数据系统来说,包 含数据从业务系统同步进入数据仓库和数据从数据仓库同步进入数据 服务或数据应用两个方面。本章侧重讲解数据从业务系统同步进入数据 仓库这个环节,但其适

m0_54252387的博客 961

php版生成带logo的二维码源代码

搭建自己的PHP二维码API源码 /** * 生成二维码图片(可生成带logo的二维码) * * @param string $data 二维码内容 * 示例数据:http://www.baidu.cn或weixin://wxpay/bizpayurl?pr=0tELnh9 * @param string $saveDir 保存路径名(示例:Qrcode) * @param string $logo 图片logo路径 .

阿酷tony 819

深度学习之目标检测--Pytorch实战

只需要能看懂python代码,就能最快入门深度学习---目标检测。目标检测简单的玩玩儿还行,模型调优,调参,还需要一定的数学功底。通过代码来实现卷积,池化,非线性激活,正则化,归一化,能让人减少对大量数学公式的敬畏,手写神经网络也是考研复试中上机考试的压轴题,掌握搭建神经网络和如何训练模型是需要掌握的基础的

需要远程指导仿真实验、代码有问题的,请后台私信或者关注公众号 1万+

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

PHP生成带logo,底部带文字的二维码

PHP如果想要生成logo,需要下载一个phpqrcode,我使用的版本是1.1.4版本的。各位看官可以自行百度下载 /** * 生成带logo的二维码 * @param string $url * @param string $filename_1 * @param string $text * @param string $logo2 ...

懒人丶c的博客 1200

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

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

库网站 http://phpqrcode.sourceforge.net/ 参考文章:https://www.cnblogs.com/wcm19910616/articles/5383272.html 随着科技的进步,二维码应用领域越来越广泛,今天我给大家分享下如何使用PHP生成二维码,以及如何生成中间带LOGO图像的二维码 使用PHP QR Code生成二维码 HP QR...

dylwx_2005的专栏 787

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

PHP生成带logo二维码

#PHP生成二维码 (需下载phpqrcode类文件) 下载地址:http://phpqrcode.sourceforge.net/ 这个类库就一个文件。打开文件可以发现由多个类组成(我用的是1.1.4)。第一个类名字是 qrstr,文件名是phpqrcode。 下载官网提供的类库后,只需要使用phpqrcode.php就可以生成二维码了,当然您的PHP环境必须开启支持GD2。 phpqrcode...

weixin_41722647的博客 357

TP5使用二维码PHP QR Code生成带LOGO和不带LOGO的二维码

TP5使用二维码PHP QR Code生成带LOGO和不带LOGO的二维码 1.下载二维码插件Phpqrcode,地址 https://sourceforge.net/projects/phpqrcode/files/,把下载的文件夹放到\vendor下 2.在公共函数库添加函数create_qrcode(); function create_qrcode($data,$img) { re...

zylsc的博客 410

用phpqrcode生成二维码和带logo的二维码

/** * 生成二维码 * @param $value 二维码内容 可以是链接、文字、json字符串等等 * @param string $level 容错级别 * @param string $imgsize 生成二维码图片大小 */ public static function qrcode($value,$level='L',$imgsize='5'){ require_once APP_PATH.'/phpqrcode/...

陌小白的博客 1330

php生成带logo的二维码

php生成带logo的二维码 require_once 'phpqrcode.php'; set_time_limit(0); // 二维码内容 $value = $_REQUEST ["QRCodeContent"]; // 容错级别 $errorCorrectionLevel = 'Q'; // L,M,Q,H $levels = array("L", "M", "Q", "H"); if ...

wozhongmingyue的博客 205
上一篇: 终端出现 You have new mail.的解决方法
下一篇: Mac ssh使用pem文件登录远程服务器
傲雪星枫
博客等级 码龄15年 2307粉丝 306原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值