[工具分享] 分享一个在线二维码生成器(基于 qrcode.js 开发) - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
lovezww2011

[工具分享] 分享一个在线二维码生成器(基于 qrcode.js 开发)

  •  
  •   lovezww2011
    geeeeeeeek 2023 年 8 月 30 日 2689 次点击
    这是一个创建于 967 天前的主题,其中的信息可能已经有所发展或是发生改变。

    运用 qrcode.js 开发的一种二维码扫描与生成的工具, 它可生成个性化二维码, 支持文本、网址、图片、短信、电话等格式及主题,提供融合码功能

    演示地址

    https://qrcode.gitapp.cn

    关键代码

    var qrcode = new QRCode(document.getElementById("qrcode"), { text: "", width: 288, height: 288, colorDark: "#000000", colorLight: "#ffffff", correctLevel: QRCode.CorrectLevel.H }); // 调用 qrcode.makeCode(content); // make another code. 

    二维码知识

    二维码( QR code )是一种用于快速读取和存储信息的矩阵式二维码符号。它是由日本 Denso 公司于 1994 年 9 月研制的一种条码技术,具有高效、可靠、灵活和广泛等特点。 二维码由一些黑色和白色的小方块组成,这些方块按照特定的规则排列。通过使用不同的黑白方块组合,可以编码各种类型的数据,包括文本、URL 、电话号码、电子邮件地址、图片、视频等。 使用二维码可以方便地将信息传输到其他设备或与互联网连接的设备上。例如,您可以将二维码保存到手机相册中,然后使用手机应用程序扫描该二维码,以访问链接、下载文件、获取信息等。 由于二维码的灵活性和普遍性,它们已经广泛应用于各种领域,如商业、医疗保健、教育、物流、娱乐等。


    二维码的生成原理涉及到编码过程和纠错码的生成。以下是基本的步骤:

    1.数据编码:首先,需要将需要存储的数据转换为二进制码。这个过程可以通过将数据转换为 ASCII 码,然后再将 ASCII 码转换为二进制码实现。

    2.生成纠错码:为了提高二维码的识别率,需要为每个字符生成一组纠错码。纠错码的作用是检测和修正错误,通常采用的是 Reed-Solomon 编码。这种算法可以检测并修正一定数量的错误,从而确保二维码的可靠性。

    3.模块排列:将数据和纠错码按照一定的规则排列到二维码矩阵中。具体的排列方式取决于二维码的类型和版本。


    二维码样例图

    11.jpg

    数据编码

    22.jpg

    QR 码支持如下的编码:

    Numeric mode 数字编码,从 0 到 9 。如果需要编码的数字的个数不是 3 的倍数,那么,最后剩下的 1 或 2 位数会被转成 4 或 7bits ,则其它的每 3 位数字会被编成 10 ,12 ,14bits ,编成多长还要看二维码的尺寸

    Alphanumeric mode 字符编码。包括 0-9 ,大写的 A 到 Z (没有小写),以及符号$ % * + . / : 包括空格。这些字符会映射成一个字符索引表。如下所示:(其中的 SP 是空格,Char 是字符,Value 是其索引值) 编码的过程是把字符两两分组,然后转成下表的 45 进制,然后转成 11bits 的二进制,如果最后有一个落单的,那就转成 6bits 的二进制。而编码模式和字符的个数需要根据不同的 Version 尺寸编成 9, 11 或 13 个二进制

    参考 github

    https://github.com/davidshimjs/qrcodejs

    目前尚无回复
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5296 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 50ms UTC 05:52 PVG 13:52 LAX 22:52 JFK 01:52
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86