VS调用ZXing生成DATA_MATRIX二维码,打印出来有些模糊,找了半天原因,才发现:
生成图片太小,渲染到一个大的矩形后,图片放大,因此变得模糊,一定注意设置参数的单位问题。
EncodingOptions options = new DatamatrixEncodingOptions();
options.Margin = 1;
options.Height = 148;
options.Width = 148;
options.PureBarcode = true;
options.Hints.Add(EncodeHintType.CHARACTER_SET, "utf-8");//编码格式
options.Hints.Add(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);//容错类型
options.Hints.Add(EncodeHintType.DATA_MATRIX_SHAPE, SymbolShapeHint.FORCE_SQUARE);
ZXing.BarcodeWriter wrMatrix = new BarcodeWriter();
wrMatrix.Format = BarcodeFormat.DATA_MATRIX;
wrMatrix.Options = options;
Bitmap matrixCode = wrMatrix.Write(strLeft);//strLeft 二维码数据
Rectangle descRectLeft = new Rectangle((int)(3 / 0.254), (int)(37 / 0.254), (int)(36 / 0.254), (int)(36 / 0.254));//矩形左上角定点坐标 X,Y坐标 36mm的正方形
e.Graphics.DrawImage(matrixCode, descRectLeft);
补充 20220721测试
上述代码测试生成的二维码大小为24mmx24mm,后调整options.Height和Width的值,当为480,二维码大小为36x36,但是清晰度还是不够,然后调整值,依次测试,500x500,600x600,1000x1000,1200x1200,1500x1500,1800x1800,2400x2400,测试过程中设置1500二维码清晰,识别度较高。