小程序码背后的故事:从二维码到异形码的演变历程

2025-03-10
来源:网络整理

迷你计划代码的出现

2017年1月9日,微信正式发布了迷你计划。一开始,只能通过微信[扫描]识别并进入特定的迷你程序。 4月14日,[长按识别QR码]的功能正式打开,这意味着使用Mini程序的用户的便利性将得到很大改善。

之后,仅4天后,微信推出了一个迷你程序代码,支持[扫描]和[长按以识别和扫描代码]。

尽管Mini程序代码看起来与QR码完全不同,但Mini程序代码也具有QR代码的所有功能。

为什么微信会启动如此特殊的QR码?迷你程序代码背后的故事是什么?

不用担心,今天我会告诉您迷你程序代码背后的故事。

QR代码与迷你程序代码

当我第一次扫描迷你程序代码时,我实际上是一种尝试态度的。

当时,我在想,我能否真的扫描与QR码不同的代码?事实证明这真的很好!后来,我发现这种外星QR码不是微信的第一个。 SNAP等公司也启动了类似的外国代码:

以下QR码使用图像处理和识别技术来擦除传统QR码中近70%的颜色块,以形成几乎不可见的QR码。这是以色列初创公司()的工作。

(可以通过应用程序扫描代码来识别)

阿里巴巴于2015年投资了该公司,并已开始在其网站,应用程序和云计算中使用相关技术。

动态视觉代码

此外,还有许多富有想象力的“改变面向的QR码”(作者:笑脸):

面对市场上许多有趣而有趣的QR码,微信推出了独家迷你计划代码,这既出乎意料又合理。

如果以上原因尚未说服您,让我们从比较QR码和迷你程序代码的角度来看一下迷你程序代码的优势。

传统QR码通常具有以下缺点:

迷你计划代码的优点:

显然,迷你程序代码是一个更好的选择:)

迷你程序代码的盛开过程

这是迷你程序代码初始设计草案的原型。可以看出,这确实是花的形状。略有不同的是,该原型图中只有两个定位点。

我们目前看到的迷你程序代码具有3个定位点。

这是迷你计划代码的规范设计草案:

目前,《迷你程序代码》支持3个容量,即36射线,54射线和72射线。

每个版本对应于四个容错级别:L,M,Q和H:

应该如何理解?

例如,可以纠正大约35%的H级故障迷你程序代码的字体代码。这意味着,在最理想的情况下,当该小程序代码的35%被阻止/损坏时,扫描引擎仍然可以识别代码所携带的信息。

投票小程序如何开发_投票系统开发_投票系统软件开发

但是,这35%的损坏区域不能是定位模式和功能数据,但必须是纯粹的编码区域,并且错误的区域必须恰好分配正确,并且条件非常严格。

因此,这里的百分比是一个非常理想的数据,实际的测试结果将略低于此百分比。

但是,在此阶段,当我们通过官方API文档请求迷你程序代码图像时,我们不需要(或不需要)指定哪个预期生成的版本以及由微信后端自动选择了哪个耐故障的迷你程序代码。

尽管麻雀很小,但它具有所有内部器官。

迷你程序代码有两个徽标区域,即中间的自定义徽标区域和右下角的官方徽标区域。灰色区域是迷你程序代码的数据编码区域,其他颜色区域是迷你程序代码的功能数据(主要包括版本,错误校正和其他信息。

至于如何对应,由于微信尚未公开,必须首先将其保密)

这[菊花]像编织一样绽放吗?主要需要以下步骤:

1。位置点

首先,确定右下角的3个定位点和官方徽标区域。在第一步之后,还将确定迷你程序代码的大小。

2。信息编码区域

编码过程主要是将原始信息(例如小程序的主页)转换为可以通过计算机识别的语言的过程 - 二进制序列(例如0110 ... 110)。

听起来有点抽象吗?您可以这样理解,一个六个月大的婴儿不能吃米饭,但是我们可以将米饭粉碎成米饭,以便他可以吃并消化。原理是相似的,大又小:)

编码后的下一步是添加错误校正代码。

这个过程有点复杂,因此我将尝试用您可以理解的语言向您解释它。

假设将100个原始鸡蛋放在桌子上(代表上一步中已转换的二进制序列),然后添加了120个煮熟的鸡蛋(代表误差校正代码,特定数量取决于误差校正率,这只是一个假设)。从表面上看,生鸡蛋和煮熟的鸡蛋之间没有太大差异,但实际上仍然有区分它们的方法。例如,由于蛋黄被悬浮在鸡蛋中间,并且重心不稳定并且不能旋转,而煮熟的鸡蛋可以旋转,因此生鸡蛋是不稳定的。

the step, the of data (from the of raw and eggs, the eggs on the from 100 to 220), and back to our step, it is to the 0110...110 ( that 0 and 1 have a of 170 bits, , it a of 400 bits of 1010...101).

这里需要添加的一件事是,添加错误校正代码的阶段不仅是仅仅是为了增加数据量。

一旦确定了迷你程序代码的版本和误差校正级别,则修复了相应的误差校正代码。这样,解码阶段可以通过相应的规则消除误差校正代码,并保留真正有用的数据(返回原始鸡蛋的示例,即只留下生鸡蛋并排除煮熟的鸡蛋)。

在信息转换和误差校正编码之后,我们获得了最终的QR码序列,并且可以以一定的编码顺序(1对应于黑色,0对应于),可以将信息填充到迷你程序代码的编码区域中。

填充后,我们发现迷你程序上的花瓣看起来非常不平衡,例如以下图片:

因此,为了使迷你程序代码的花瓣看起来更加平衡,需要再进行一步。

-----------------------

在此之前,让我们首先了解逻辑XOR的基本知识(XOR,符号为⊕),请参阅下表。

a⊕b,当ab不相等时,值为1,当ab相等时,值为0。两个XOR操作后,结果与原始代码相同(a⊕b⊕b= a)。

-----------------------

3。蒙版操作

Mini程序代码与32个掩码(也称为[Mask],可以根据某些规则生成)结合使用),最后选择最佳的迷你程序代码作为最终的Mini程序代码。

4。功能数据

投票小程序如何开发_投票系统软件开发_投票系统开发

最后一步是填写功能数据,最终效果如下:

此时,迷你程序代码完成了其盛开的过程:)

获取小程序代码

根据MINI计划的官方开发文件,目前有两个接口(A和B)需要要求生成迷你程序代码,并且有一个接口(c)用于请求生成Mini QR代码。这三个接口有什么区别?

建议您首先使用B接口生成QR码。一方面,迷你程序代码总是比QR代码更容易识别。另一方面,没有数量限制,而且技术处理相对简单。

关于迷你程序代码的样式,我们可以在此阶段主要定义以下内容:

由于目前我们只能定义小程序代码的射线颜色,因此我们无法定义整个小程序代码图片的背景颜色。因此,在宣布迷你程序代码光线的颜色的步骤中,有两个主要想法:

微信识别迷你程序代码

迷你程序代码识别和迷你程序代码生成的过程相反。您可以通过简单的流程图体验它。

尽管Mini程序目前不直接支持在时刻直接共享,但是越来越多的迷你程序试图将迷你程序代码与业务功能结合起来,以生成可以在瞬间传播的迷你程序代码,以便其他用户可以直接(从时刻)直接(从瞬间)识别Mini 代码,以长期识别和按下紧迫并按下以识别迷你程序代码。

长期按下和识别QR码(或迷你程序代码)是微信下的一种非常自然的互动。由于我们在谈论这个问题,因此我将简短地与您谈论长期紧迫和识别代码背后的短篇小说。微信将根据不同方案采用不同的识别策略,这些策略主要分为两类:

1。按住以识别

当微信检测到用户长时间按下并识别它时,它将尽快进行当前屏幕截图,然后检查是否有Mini程序代码(还是QR代码)。如果是这样,将出现用于长压力的菜单项,以识别Mini程序代码(或QR代码)。单击菜单项以跳到相应的迷你程序代码(或与QR代码相对应的QR码);相反,如果屏幕截图中没有Mini程序代码(或QR码),或者Mini程序代码(或QR代码)模式不完整,则不会有识别结果。

2。长按并握住图片查看器以识别

假设有人在您的时刻发送包含迷你程序代码(或QR码)的图片。您单击以预览小图片(这次是在图片查看器中称为图片),并且您也可以长时间按以识别它,然后您将直接发送图片以识别它! (但这不一定是原始图片。这里有很多策略。

在测试后,在此阶段(2017.8),发现在普通情况下,只要微信可以长时间按识别QR码,它也可以长时间按以识别Mini 代码。但是,在Mini程序下,只有很长的按下才能暂时识别Mini程序代码,因此不支持识别QR码的长按。

参考文章和图像来源

终于

感谢您的阅读。为了表达我的感激之情,我决定(再次)与您分享我在研究过程中遇到的最佳小程序代码的图片:)

腾讯投票

有趣的实时投票小程序

----------------------------------------------------------------------

如果您认为内容很好

请点击屏幕右上角的按钮[分享到矩]共享内容

分享