0

如何设置固定宽度(500)和高度(300)条码尺寸?我正在使用 Zxing 库来生成条形码图像。

private byte[] GenerateBarCodeZXing(string data)
    {
        var writer = new BarcodeWriter
        {
            Format = BarcodeFormat.PDF_417,
            Options = new EncodingOptions { Width = 500, Height = 300, Margin=0 } 
        };
        var imgBitmap = writer.Write(data);
        using (var stream = new MemoryStream())
        {
            imgBitmap.Save(stream, System.Drawing.Imaging.ImageFormat.Png);
            return stream.ToArray();
        }
    }

输出图像:

在此处输入图像描述

在此处输入图像描述

4

2 回答 2

2

ZXing.Net 无法设置固定的宽度和高度。该库仅支持缩放而没有抗锯齿。结果大小首先取决于应该编码的内容。更多的内容意味着更多的行和列。每列和每行的单个黑色(和白色)条具有指定的大小。在大多数情况下,所有条形的总和不等于所需的大小。如果需要更多空间,则生成的 PDF417 代码大于请求的大小。如果小于,则周围有更多的空白。渲染器仅支持整数比例因子。

最好的方法是,请求 1 像素宽和 1 像素高的尺寸。条形码写入器生成所需最小尺寸的条形码位图。之后使用您喜欢的图像处理库调整位图大小。

于 2017-09-04T05:34:48.987 回答
0

有一个属性可以设置相对大小...尝试创建一个新的dimention()并设置4个参数...dimention(min columns, max columns, min rows, max rows) 这设置了最小和最大大小条码upc417

于 2018-06-17T14:34:46.757 回答