首页 > 解决方案 > 在 C# 中将 ZXing.Common.BitMatrix 转换为位图 Zxing

问题描述

您好,我需要将 BitMatrix 转换为位图的帮助。这是我的代码,我正在使用 Zxing 库

var encodeHint = new Dictionary<EncodeHintType, object>();
String contents;
Bitmap bitmap = null;
QRCodeWriter writer = new QRCodeWriter();
encodeHint.Add(EncodeHintType.CHARACTER_SET, ENCORD_NAME);
encodeHint.Add(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L);
BitMatrix bitData;
contents = ss;
bitData = writer.encode(contents, BarcodeFormat.QR_CODE,100,100, encodeHint);

请注意,我正在制作一个加入或链接的二维码,它是日本使用的一种特殊类型的二维码。参考链接二维码。我可以使用 BarcodeWriter 制作 QR 码,但我必须像这样使用。如果我使用如何将此位矩阵转换为位图

bitmap = bitData.ToBitmap();

我到这里位图 Null 并且例外是“发现空内容”。

标签: c#winformsqr-codezxing

解决方案


这个例子是适用的。
似乎可以通过将 BitMatrix 传递给 BarcodeWriter 类的 Write 方法来获得 Image。

文件:Form1.cs 项目:shuxp/test_QRCode

private Bitmap GenByZXingNet(string msg)
{
    BarcodeWriter writer = new BarcodeWriter();
    writer.Format = BarcodeFormat.QR_CODE;
...
...
    ZXing.Common.BitMatrix bm = writer.Encode(msg);
    Bitmap img = writer.Write(bm);
    return img;
}

推荐阅读