images.QR
语法
images.QR TEXT OPTIONS
返回
images.ImageResource
images.QR
函数使用指定的选项将给定的文本编码为 QR 码,并返回图像资源。生成的图像大小取决于三个因素
- 数据长度:较长的文本需要更大的图像以容纳增加的信息密度。
- 纠错级别:较高的纠错级别增强了 QR 码的抗损坏能力,但这通常会导致图像尺寸略微增大以保持可读性。
- 每个模块的像素数:分配给每个单独模块(QR 码的最小单元)的图像像素数直接影响整体图像大小。每个模块的像素计数越高,生成的图像越大,分辨率越高。
虽然默认选项值对于大多数应用来说足够了,但您应该在屏幕上和打印中测试渲染的 QR 码。
选项
- level
- (
string
)编码文本时使用的纠错级别,可以是low
、medium
、quartile
或high
之一。默认值为medium
。
纠错级别 | 冗余 | |
---|---|---|
低 | 20% | |
中 | 38% | |
四分位 | 55% | |
高 | 65% |
- scale
- (
int
)每个 QR 码模块的图像像素数。必须大于或等于2
。默认值为4
。 - targetDir
- (
string
)在publishDir
中的子目录,Hugo 会将生成的图像放置在该目录中。使用 Unix 风格的斜杠 (/
) 分隔路径段。如果为空或未提供,则图像将直接放置在publishDir
根目录中。如果子目录不存在,Hugo 会自动创建必要的子目录。
示例
要使用 level
和 scale
的默认值创建 QR 码
{{ $text := "https://gohugo.com.cn" }}
{{ with images.QR $text }}
<img src="{{ .RelPermalink }}" width="{{ .Width }}" height="{{ .Height }}" alt="">
{{ end }}

根据需要指定 level
、scale
和 targetDir
以实现所需的结果
{{ $text := "https://gohugo.com.cn" }}
{{ $opts := dict
"level" "high"
"scale" 3
"targetDir" "codes"
}}
{{ with images.QR $text $opts }}
<img src="{{ .RelPermalink }}" width="{{ .Width }}" height="{{ .Height }}" alt="">
{{ end }}

缩放
当您减小 QR 码的大小时,设备可以可靠扫描它的最大距离也会减小。
在上面的示例中,我们将 scale
设置为 2
,从而生成一个每个模块由 2x2 像素组成的 QR 码。虽然这可能足以在屏幕上显示,但在以 600 dpi 打印时可能会出现问题。
此模块大小是通常建议的最小尺寸 0.170 毫米的一半。
如果 QR 码将被打印,请使用默认的 scale
值,即每个模块 4
个像素。
避免使用 Hugo 的图像处理方法来调整 QR 码的大小。当 QR 码模块占用小数个像素时,调整大小可能会因抗锯齿而导致模糊。
短代码
调用 qr
短代码将 QR 码插入到您的内容中。
使用自闭合语法将文本作为参数传递
{{< qr text="https://gohugo.com.cn" />}}
或在打开和关闭标签之间插入文本
{{< qr >}}
https://gohugo.com.cn
{{< /qr >}}
qr
短代码接受多个参数,包括 level
和 scale
。有关详细信息,请参阅相关文档。