如何在zxing.net生成的二维码图像下方添加对应文本内容
实现方案
完全可以实现,不需要改动你已经跑通的zxing.net二维码生成核心逻辑,只需要在图像输出环节加两步画布处理就行,零额外依赖。
操作步骤
- 先别直接把zxing.net生成的原始二维码位图输出/保存,先取到原始位图的宽、高参数
- 新建一个尺寸更大的目标位图:在原始二维码高度的基础上,底部多预留80~120像素的空白(这个值可以根据你要用的字号、文本长度调整),宽度和原始二维码对齐,或者留点左右边距更美观
- 把生成好的原始二维码居中贴到新画布的上半部分,保证二维码本身的有效图案没有裁切、变形
- 用GDI+的绘图对象选个常规字号(比如12~16号的微软雅黑),把二维码对应的原始文本居中绘制到底部留出来的空白区域就行
容易踩的坑
- 底部的文本区域和二维码有效图案一定要留够间距,绝对不能和二维码的码块重叠,不然轻则压花影响扫码成功率,重则直接扫不出来
- 遇到长文本的时候别硬把字号缩太小,适当加宽画布宽度,避免文字被边缘裁切
- 原来的ASP.NET输出逻辑完全不用改:画完之后直接把新位图转成流返回就行,前端接收的部分和之前完全兼容
- 如果对文本的位置、字体样式要求不高,也可以用zxing.net自带的条码文本绘制属性,只是自定义灵活度不如自己用GDI+画的高
内容的提问来源于stack exchange,提问作者Rhyno_H
相关产品推荐
相关产品推荐

