-
Notifications
You must be signed in to change notification settings - Fork 10
Open
Description
目前的软件仅仅支持设置宽度与高度,单位为像素。
这里有好几个问题:
- 这个宽度与高度并不保证图片生成后一定的宽高像素,这仅仅是将其传递给
zxing-cpp,它仅仅作为一个参考值(这涉及到标准条码的比例规则等),在绝大多数时候实际绘制的图片并非我们传入的大小。 - 就算
zxing-cpp真的按照了我们传递的参数设置(几乎不可能),也无法对应实际的物理单位 cm 等,我们需要考虑 PPI。
在数字化图像处理中,图片的显示大小并非仅由像素值(px)决定,而是由像素总量 与 分辨率元数据(DPI/DPM) 共同定义的。其遵循的核心公式如下:
1. Word 等软件读取尺寸会偏差
多数办公软件(如 Microsoft Word)在读取不含分辨率信息的图片时,会默认采用系统基准分辨率(通常为 96 DPI)作为分母进行计算。
现象: 若生成一张
2. DPM 元数据的必要性
DPM(Dots Per Meter,每米点数) 是存储在图像文件头(Header)中的关键属性。它是软件识别图像“物理密度”的唯一依据。
- 作用: 通过在图像导出时显式设置 DPM 值,可以强制软件在计算公式时使用正确的分母(如 )。
- 换算关系: 由于 Qt 及多数公制标准库使用 DPM,需通过下式进行转换:
总结来说,完成这个需求首先需要进行像素的公式计算,同时由于 zxing-cpp 并不严格按照我们传递的参数设置宽高,我们还得进行缩放。
然后我们再设置 dpm 写入图片,即可确保正确。
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels