二维码揭秘-第五部分

九游会客户端——2011年6月21日,星期二

现在我们已经整理好了数据和错误纠正, 我们差不多可以把它放到符号里了. 见 第2部分, 数据和纠错模块基本上会去那些没有被其他东西占据的地方. 我们还没有完全准备好放置它的原因是我们还没有建立对齐模式的位置.

表9指出了每个符号版本的对齐模式的位置. 这些数字表示对齐模式中心的X和Y位置, 左上角是点(0,0). 为了节省空间,我只列出了每个数字一次,但它们应该形成一个网格. 将忽略与查找器模式重叠的对齐模式. 例如, 版本7的对齐模式以(22,6), (6,22), (22,22), (38,22), (22,38), 和(38,38). 每个版本(1, 哪没有对齐模式)有一个对齐模式在右下角, 与中心6个模块远离底部和右侧边缘. 版本7及以上(具有多个对齐模式的)在每个计时模式上至少有一个位置, 距离边缘也有6个模块.

显示/隐藏表9 -对齐模式

出于篇幅的考虑,我们将在下周讨论版本信息. 无论如何,我们无法放置格式信息,因为我们还没有选择掩码. 所以现在, 只要记住这些东西就在那里,不要把任何数据/错误纠正模块放在它们去的地方, 但我们得等会儿再填.

现在,我们终于可以开始放置数据/错误纠正模块了. 第一个, 我们将整个符号分成2个模块宽的列, 忽略垂直计时模式(第6列.),那么, 从右下角开始, 我们沿着这些列向上走, 然后下来, 然后向上, 然后下来, 等. 在每一列2宽的每一行, 我们放置一个位(黑色代表1, 白色代表0)如果可以,在右侧, 然后如果有的话,左边的. 然后我们向上或向下移动,这取决于我们当时的方向,然后再做一次. 一旦我们到达柱子的顶部或底部, 我们向左移到下一列然后反转向上还是向下. 下图说明了版本1符号的位顺序, 用蓝线清楚地表示各列的分离.

qr-module-placement.png

当然要记住,版本1符号没有版本信息或对齐模式需要考虑, 橙色区域是为格式数据保留的. 随着版本的增加,它会变得更加复杂. 这应该足以解释这个概念. 记住上下交替是很重要的. 看看0-23如何上升,24-47如何下降,等等. 还要记住 总是 先试试栏的右边.

我们面临的最后一个问题是掩蔽. 屏蔽将某些模块从黑色切换到白色,或反之亦然, 从而防止工件混淆阅读软件. 在理论上, 每种类型的蒙版将依次应用到符号上, 并且应该使用不受欢迎的工件最少的那个. 在实践中, 这可能是相当密集的处理器, 许多生成器只是随机选择一个遮罩,或者总是使用相同的遮罩. 如果你想按规矩来,我会解释规则的.

每个掩码都有一个特定的规则. 对于每个数据/错误纠正模块(不是任何其他模块),根据规则检查X和Y位置,以确定是否反转该模块. 表10描述了这些规则—执行所示的计算, 如果结果是0, 转化模块. Mod表示模数分割, 左边的数除以右边的数是什么, 得到余数. 使用常规除法(用正斜杠/表示)时,将商四舍五入到最接近的整数(整数除法). 左列表示掩码的十进制值, 以及二进制表示(我们将在第6部分中用到).

表10 -屏蔽规则

所以我们知道了每个遮罩的作用,现在我们只需要知道如何选择一个. 就像我之前说的, 有些人是随机选择或使用固定的选择, 但官方的方式要复杂得多. 它使用一个积分系统来决定哪一个是最理想的,可读的版本. 对应用的每个蒙版对符号运行一系列测试. 这些测试的结果可能会给遮罩增加“点数”. 最后点最少的掩码是最易读的,应该使用. 对于每个测试,可能会有工件的多个实例. 将每个实例的点相加.

以下是测试. 如果一个符号在一条直线上(水平或垂直)包含至少5个全白或全黑的模块, 将长度为- 2的点相加(所以5行的最小值为3). 每当这个符号包含一个2x2的白色或黑色方块时,加3点. 如果一个符号包含图案黑色, 白色, 黑色的, 黑色的, 黑色的, 白色, 黑色的, 无论是水平还是垂直, 加上惊人的40分. 最后,确定黑白模块的百分比. 如果该比率低于55%至45%,则每增加一个变异百分比,增加10个点. 例如,58%的黑与42%的白将是(58-55 = 3)* 10 = 30分.

我们在这篇文章中已经讨论了很多. 下次我们会结束. 我们还需要涉及格式信息、版本信息和一些杂项. 如果你还没有,不要忘记查看本课的前几部分 第1部分, 第2部分, 第3部分, 第4部分. 下周我将介绍生成QR码需要知道的最后一点, 并展示我制作的二维码生成器,启发了这一系列的课程.

九游会客户端
九游会客户端是一家专注于全方位服务的创意机构 网页设计打印身份品牌界面设计视频制作静止摄影 而且 运动设计. 用我们对卓越的热情,多元文化背景,和 获奖 实践, 我们一贯提供高品质的, 自定义, 创新的解决方案,以满足客户多样化的营销需求. 欲了解更多信息,请访问 www.MatchaDesign.com.