Discode 一种圆形二维编码

2023-08-03 00:20:13 +08:00
 7gugu

前言

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

编码截图

编码特性

  1. 支持 30Bit data
  2. 支持 a-z, A-Z, 0-9, "@", "." 总共 64 种字符
  3. 中心支持自定义 Logo

TODO

Demo 目录

目前这个 Demo 一共包含了四个部分,第一、二部分的博文主要是从设计者的角度分享了我对于异形二维码的思考以及如何设计一个编码字典;第三部分主要是通过博文概要的说明了其中的技术原理;第四部份则是代码 Demo ,其中包含了一个可以生成 Discode 编码的页面以及一个用于识别该编码的网页。

  1. [Discode] 为啥要设计新的二维码系统?
  2. [Discode] 设计 Discode
  3. [Discode] 生成 & 识别 Discode
  4. Github 代码仓库

联系方式

最后

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

10759 次点击
所在节点    分享创造
35 条回复
airyland
2023-08-03 00:36:41 +08:00
感谢,学习了
bangbo
2023-08-03 08:01:38 +08:00
感谢分享,又长知识了
duke807
2023-08-03 09:15:13 +08:00
设计东西不是打补丁

重要的东西一开始就要全部包含,并充分考虑扩展性

没有纠错码,连 - 这个字符都不支持

等要加纠错码,以及要增加字符的时候,你设计的这套规范,又要全部打破重新设计
showonder
2023-08-03 10:58:29 +08:00
感谢分享详细的设计思路。不过要具备推广实用性,复杂的环境还是要考虑的,需要很强容错、纠错,让用户去遵守规范的事只能在自由体系内玩,几乎不可能跳出体系应用
7gugu
2023-08-03 11:56:37 +08:00
@duke807 做这个的初衷其实更多是为了了解这种异形二维码的技术原理,拓展性优先级不高。我的初始目标也仅仅是需要能够存下我的域名和邮箱即可。
kylebing
2023-08-03 12:02:23 +08:00
这种码容错率太低,一变形就扫不出来了。
7gugu
2023-08-03 12:06:06 +08:00
@showonder 这个我的思考是这样子的,私有编码的核心目的就是框死用户在自己的体系里,强迫用户遵照自己的设计去使用这个二维码,压根就没想过推广。比如微信码、抖音码、支付宝码,甚至是 Apple 的 AppClips 码也是这样子的设计思路。其中 Apple 的 Clips 码是最突出的代表,根本不考虑是否支持旋转矫正是否需要纠错,反倒是让用户去自己解决识别问题,识别不到你就换个方向识别,二维码上有污渍就换一个新的二维码。
7gugu
2023-08-03 12:06:52 +08:00
@kylebing 对的,不过压根不考虑变形的问题,强迫用户不放在曲面就好了 XD
qzwmjv
2023-08-03 12:42:11 +08:00
二维码本来就是带纠错的,这种圆形只是牺牲了一部分信息
isaced
2023-08-03 12:45:51 +08:00
感谢分享,学习了
7gugu
2023-08-03 13:24:47 +08:00
@qzwmjv 准确的来说是跟编码规则有关系,比如 QRCode 的编码规则就是包含了纠错的部分,我在设计的这种编码规则就是完全不支持纠错的
SleepyRaven
2023-08-03 13:34:15 +08:00
歪个楼,例图有点像宝可梦里的蚊香君😂
AaronHsiung
2023-08-03 16:14:16 +08:00
支持一下,感谢分享。 我最早是在 facebook 里看到过类似的圆形码。
showonder
2023-08-03 16:22:43 +08:00
@7gugu 所以 Apple 的 Clips 码感觉会搞不起来,不能指望用户那么容易服从教育和不关注成本,这个很适合 UI 中显示,比较容易标准规范地呈现,但不太适合线下场景,小程序码这种线下使用比较多的还是有旋转矫正的
qzwmjv
2023-08-03 16:31:28 +08:00
@7gugu QRCode 用的 solomon 编码,你不带纠错的话实用性会很低,因为不能保证显示、扫描、解码中不出错
7gugu
2023-08-03 16:31:43 +08:00
@showonder 不完全是的,这里 clips 码流行不起的核心原因是因为 AppClips 的门槛高导致的,开发商必须先有 App 才能有 Clips ,而不是小程序的人人都能有 Clips 。你可以在 Youtube 上搜一下台湾的 AppClips 应用,已经有很多线下商户应用这个能力,足以证明用户使用并不是大问题。
showonder
2023-08-03 16:42:58 +08:00
@7gugu 对的,AppClips 基本都是高质量商户,对商户本身的物料管理能力有不低的要求,这类方案还是很难取得网络效应的。但 OP 您的工作确实对进一步探索很有启发
7gugu
2023-08-03 16:51:36 +08:00
@qzwmjv 对的,不过初衷也是用来探索如何生成这样子异形二维码,实用性和拓展性如上所述,并不是优先被考虑的,所以这个项目我也只是称作 Demo ,真正实用至少还要完成 TODO 剩余的工作才行。不过碍于工作的原因,我其实也没太多时间在这个上面投入,就先这么放着吧。
54xavier
2023-08-03 19:16:17 +08:00
歪个楼:AppClips 在国内做不起来感觉和微信、支付宝小程序在国内比较流行也有一定的关系,微信、支付宝小程序同时支持安卓和 ios ,而 AppClips 仅支持 ios ,为了 ios 用户特地去开发个 AppClips ,还不如一套代码能够同时兼容微信、小程序。
NoOneNoBody
2023-08-05 17:26:32 +08:00
@7gugu #8
不考虑变形,那条形码更好
二维码当年产生的其中一个重要原因,就是改变条形码必须垂直扫码的困局,靠三点定位自动修正,可以多角度扫

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/961950

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX