网页前端js使用jquery.qrcode插件实现生成带图标的二维码

编程开发
57
js
二维码
jquery
logo图标
jquery.qrcode
DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="http://www.yuantk.com/assets/css/main.css">
head>

<body>
    <div class="row uniform">
        <div class="12u$">
            <input type="text" name="qr-message" id="qr-message" placeholder="请输入二维码文本信息 文本或者链接(例如:http://www.yuantk.com)"  />
        div>
        <div class="12u$">
            Logo图像
            <img id="logoImg" style="vertical-align: middle; max-width: 30px; max-height: 30px;" />
            <input type="file" id="logoImgSrc" accept="image/jpeg,image/jpg,image/png" />
        div>
        <div class="12u$" id="qrcodeDiv">
        div>
        <div class="12u$">
            <button id="start" class="special">
                生成二维码button>
        div>
    div>


    <script defer="defer">

        window.onload = loadtool;
        
        function loadtool() {

            var ad = document.createElement("script");
            ad.src = "https://cdn.bootcdn.net/ajax/libs/jquery.qrcode/1.0/jquery.qrcode.min.js";
            var s = document.getElementsByTagName("script")[0];
            s.parentNode.insertBefore(ad, s);


            $("#logoImgSrc").change(function() {
                loadImg(this);
            });

            function loadImg(input_file) {
            
                if (typeof (FileReader) === 'undefined') 
                {
                    layer.msg("抱歉,你的浏览器不支持 FileReader,不能将图片转换为Base64,请使用现代浏览器操作!");
                }
                else {
                    try {
                        /*图片转Base64 核心代码*/
                        var file = input_file.files;
                        for (var i = 0; i < file.length; i++) {
                            //这里我们判断下类型如果不是图片就返回 去掉就可以上传任意文件
                            if (!/image\/\w+/.test(file[i].type)) {
                                layer.msg("请确保文件为图像类型");
                                return false;
                            }
                            var reader = new FileReader();
                            reader.onload = function() {
                                $("#logoImg").attr("src", this.result);
                                // load(this.result);
                            }
                            return reader.readAsDataURL(file[i]);
                        }
                    } catch (e) {
                        layer.msg('图片转Base64出错啦!' + e.toString())
                    }
                }
            }


            $("#start").click(function() {

                $("#qrcodeDiv canvas").remove();

                var qrmessage = $("#qr-message").val();
                var logoImg = $("#logoImg")[0];

                if (qrmessage == "") {
                    layer.msg("请输入二维码文本信息");
                    return;
                }
                if (typeof ($("#logoImg").attr("src")) == "undefined") {
                    layer.msg("请选择logo图标信息");
                    return;
                }


                //计算宽,高,中心坐标,logo大小
                var width = 200;
                var height = 200;
                var x = width * 0.4;
                var y = height * 0.4;
                var lx = width * 0.2;
                var ly = height * 0.2;
                //生成二维码
                $("#qrcodeDiv").qrcode({
                    width: width,
                    height: height,
                    text: qrmessage
                });
                //画logo
                var canvas = $("canvas")[0];

                canvas.getContext("2d").drawImage(logoImg, x, y, lx, ly);

            });

        }

    script>
body>
html>
<script defer="defer" src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js">script>

使用效果演示传送门:

在线生成带Logo的二维码工具

在线工具_生成带Logo的二维码图
C# 二维码生成源码|使用ThoughtWorks.QRCode 实现根据文本内容生成二维码
解决html2canvas在 iOS15系统浏览器中截图后自动刷新页面问题
KnockoutJS用法 html+js实现mvvm
jquery 实现网页页面内容自适应窗口的宽度
JS 面向对象编程:因为不能完整支持面向对象3大特性,并不是面向对象的编程语言!
JavaScript、JQuery屏蔽网页右键菜单及禁止复制功能的实现
原生js实现最简单的网页打印例子
jquery如何检测库是否已经加载
js使用jquery.jqprint实现网页局部打印预览的效果
一段判断浏览器是否打开F12调试模式然后关闭网页的JS代码
JQuery 对标签标签内容几种常见的操作例子
暂无相关内容...
js网页添加悬浮二次元卡通公仔特效的实现源码下载
Jquery实现的一款 仿微信公众号菜单编辑器
暂无章节内容...
免责声明 部分转载分享内容若侵犯您的权益,还请 邮件联系 侵删