条码分一维和二维两种,一维条码的密度,指的是最窄的黑条或白条的宽度;二维码的密度,指的是最小的黑块或白块的边长。这两种最窄的图像单元称为模块。密度通常用mil为单位,中文叫密尔或密耳,1mil = 1/1000 inch(英寸)≈ 0.0254mm(毫米)。所以,如果说一个一维码的密度为:5mil,即是说:一维码的最窄的黑条或白条的宽度为 5*0.0254mm = 0.127mm。如果说一个二维码的密度为:10mil,即是说:二维码的最小黑块或白块的边长为 10*0.0254mm = 0.254mm。
由于用尺来量度这么小的长度比较难,所以我们可以量度条码的整体长度,再将条码拍照放大,然后查看条码整体宽度的像素数量,以及模块的像素数量,再套用公式计算出条码密度:模块边长(即 条码密度) = (条码整体的长度mm / 条码整体长度的像素 * 模块像素)/ 0.0254。
以下示例计算QR CODE的密度。
上图的整个二维码边长为10mm,单个模块边长不到1mm,用尺子不好量出来,所以要用公式推算。
推算的步骤:
1、拍二维码的照片,尽量放大。
2、用画图工具,量出照片中,整个二维码的边长的像素(1677像素),以及单个模块的边长的像素(76像素):
3、由于二维码实物的边长与二维码图片的像素成比例,而我们量出了 二维码实物的边长 和 二维码图片的像素,又量出了单个模块的图片的像素,就可以计算出模块的边长了。
公式为:模块边长(即 条码密度) = (二维码边长mm / 二维码像素 * 模块像素)/ 0.0254,计算结果的单位为mil。最后除以0.0254的作用是将长度单位换算为mil,如果不换算长度单位为mm,平常说条码的密度一般都以mil为单位。
用上图的实例来计算一次:
模块边长(条码密度)= 10mm / 1677 * 76 / 0.0254 ≈ 17.84mil
因此,上图中的二维码密度约为 17.84mil。
而用bartender做一个内容相同,尺寸最接近的二维码,查看到的密度为:19.17mil,与计算结果接近。由于测量实物和图片的工具有误差,所以结果存在轻微偏差是正常的: