Discode 一种圆形二维编码

查看 340|回复 30
作者:7gugu   
前言
之前微信、抖音和支付宝都相继推出了各自的私有二维编码系统,感觉这种异形的二维编码系统真的是好有趣,不过经过查询后,感觉互联网上对于这种异形二维编码貌似没啥文章介绍其中的技术原理,因此自己琢磨着搞了一个简易版的圆形二维编码系统,希望可以通过这个 Demo 向大家分享一下这种异形的二维码究竟是如何被设计、编码以及解码。
编码截图

编码特性
[ol]
  • 支持 30Bit data
  • 支持 a-z, A-Z, 0-9, "@", "." 总共 64 种字符
  • 中心支持自定义 Logo
    [/ol]
    TODO
  • 支持旋转矫正
  • 支持纠错码

    Demo 目录
    目前这个 Demo 一共包含了四个部分,第一、二部分的博文主要是从设计者的角度分享了我对于异形二维码的思考以及如何设计一个编码字典;第三部分主要是通过博文概要的说明了其中的技术原理;第四部份则是代码 Demo ,其中包含了一个可以生成 Discode 编码的页面以及一个用于识别该编码的网页。
    [ol]
  • [Discode] 为啥要设计新的二维码系统?
  • [Discode] 设计 Discode
  • [Discode] 生成 & 识别 Discode
  • Github 代码仓库
    [/ol]
    联系方式
  • Email: [email protected]
  • Blog: https://7gugu.com

    最后
    如果可以得到大家的 Star 将不胜感激。如果有其他想法,也欢迎在评论区中和善的分享你的 idea ,希望大家能够喜欢这个项目。

    discode, 编码, Demo

  • airyland   
    感谢,学习了
    bangbo   
    感谢分享,又长知识了
    duke807   
    设计东西不是打补丁
    重要的东西一开始就要全部包含,并充分考虑扩展性
    没有纠错码,连 - 这个字符都不支持
    等要加纠错码,以及要增加字符的时候,你设计的这套规范,又要全部打破重新设计
    showonder   
    感谢分享详细的设计思路。不过要具备推广实用性,复杂的环境还是要考虑的,需要很强容错、纠错,让用户去遵守规范的事只能在自由体系内玩,几乎不可能跳出体系应用
    7gugu
    OP
      
    @duke807 做这个的初衷其实更多是为了了解这种异形二维码的技术原理,拓展性优先级不高。我的初始目标也仅仅是需要能够存下我的域名和邮箱即可。
    kylebing   
    这种码容错率太低,一变形就扫不出来了。
    7gugu
    OP
      
    @showonder 这个我的思考是这样子的,私有编码的核心目的就是框死用户在自己的体系里,强迫用户遵照自己的设计去使用这个二维码,压根就没想过推广。比如微信码、抖音码、支付宝码,甚至是 Apple 的 AppClips 码也是这样子的设计思路。其中 Apple 的 Clips 码是最突出的代表,根本不考虑是否支持旋转矫正是否需要纠错,反倒是让用户去自己解决识别问题,识别不到你就换个方向识别,二维码上有污渍就换一个新的二维码。
    7gugu
    OP
      
    @kylebing 对的,不过压根不考虑变形的问题,强迫用户不放在曲面就好了 XD
    qzwmjv   
    二维码本来就是带纠错的,这种圆形只是牺牲了一部分信息
    您需要登录后才可以回帖 登录 | 立即注册