zxing 生成DataMatrix二维码如何去除空白边距

qq_37059134 2017-05-26 04:32:54
我用zxing.net 生成DataMatrix的二维码,二维码位置总是在图左上,总是有空白,设置margin值为0,也没什么效果

以下是我的代码,代码比较简单
static void Main(string[] args)
{

string filePath = "E:\\LabelExcel\\barcode\\" + "DataMatrix_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".png";
m_Bitmap.Save(filePath, System.Drawing.Imaging.ImageFormat.Png);
}
//生成DataMatrix二维码
public static Bitmap CreatDataMatrix(string content, int width, int heigth)
{
DatamatrixEncodingOptions dmxoption = new DatamatrixEncodingOptions();
dmxoption.Height = heigth;
dmxoption.Width = width;
dmxoption.Margin = 0;
dmxoption.PureBarcode = false;
//dmxoption.MinSize = new ZXing.Dimension(120, 120);
dmxoption.SymbolShape = SymbolShapeHint.FORCE_NONE;
BarcodeWriter barcodewriter = new BarcodeWriter();
barcodewriter.Options = dmxoption;
barcodewriter.Format = BarcodeFormat.DATA_MATRIX;
barcodewriter.Renderer = (ZXing.Rendering.IBarcodeRenderer<Bitmap>)Activator.CreateInstance(typeof(ZXing.Rendering.BitmapRenderer));
return barcodewriter.Write(content);
}
...全文
1495 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
new_new_new_new 2017-08-11
  • 打赏
  • 举报
回复
您好,请问这个十字分隔的二维码生成源码和jar包能共享下吗?想学习学习,谢谢。
  • 打赏
  • 举报
回复
引用 5 楼 qq_37059134 的回复:
[quote=引用 3 楼 Libby1984 的回复:] 我用的是QRCode,没有白边。其实与白边也没问题,你可以自己处理一下生成的图片,将边缘截取掉,比如某一行所有的像素值都是255,那么这一行就可以去掉。
因为白边是随内容会改变,截取的话肯定不能固定截取长度呀,咋截取呢[/quote] 白色的像素是RGB=(255,255,255),你只要比较一下,如果一整行或者一整列都是255的话,那么就说明是白边。
qq_37059134 2017-05-27
  • 打赏
  • 举报
回复
引用 6 楼 Libby1984 的回复:
[quote=引用 5 楼 qq_37059134 的回复:] [quote=引用 3 楼 Libby1984 的回复:] 我用的是QRCode,没有白边。其实与白边也没问题,你可以自己处理一下生成的图片,将边缘截取掉,比如某一行所有的像素值都是255,那么这一行就可以去掉。
因为白边是随内容会改变,截取的话肯定不能固定截取长度呀,咋截取呢[/quote] 白色的像素是RGB=(255,255,255),你只要比较一下,如果一整行或者一整列都是255的话,那么就说明是白边。[/quote] 图片也有一行一行的这样概念吗,有写过的式样吗,有的话贴一下,感激不尽
qq_37059134 2017-05-26
  • 打赏
  • 举报
回复
引用 3 楼 Libby1984 的回复:
我用的是QRCode,没有白边。其实与白边也没问题,你可以自己处理一下生成的图片,将边缘截取掉,比如某一行所有的像素值都是255,那么这一行就可以去掉。
因为白边是随内容会改变,截取的话肯定不能固定截取长度呀,咋截取呢
qq_37059134 2017-05-26
  • 打赏
  • 举报
回复
引用 2 楼 diaodiaop 的回复:
换个控件.. 比如ThoughtWorks.QRCode.dll 生成的是正常的...
ThoughtWorks.QRCode.dll可以生成DataMatrix吗
  • 打赏
  • 举报
回复
我用的是QRCode,没有白边。其实与白边也没问题,你可以自己处理一下生成的图片,将边缘截取掉,比如某一行所有的像素值都是255,那么这一行就可以去掉。
by_封爱 版主 2017-05-26
  • 打赏
  • 举报
回复
换个控件.. 比如ThoughtWorks.QRCode.dll 生成的是正常的...
xdashewan 2017-05-26
  • 打赏
  • 举报
回复
余白是必须的,因为一般的扫码程序会判断码和边框距离,如果余白不足很可能无法解码,具体可以参照QRCode标准

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧