【发布时间】:2010-11-30 17:36:14
【问题描述】:
我需要一个库来生成在 iPhone 和 Android(最好是 WM7 和可能的 j2me)上的 2D 条码 - 想法是将信息传输到具有相应扫描仪(解码器)的另一台设备.有哪些好的选择?
ZXing 是一个选项,特别是在读取/解码方面,但我想在这些设备上生成它们。
【问题讨论】:
我需要一个库来生成在 iPhone 和 Android(最好是 WM7 和可能的 j2me)上的 2D 条码 - 想法是将信息传输到具有相应扫描仪(解码器)的另一台设备.有哪些好的选择?
ZXing 是一个选项,特别是在读取/解码方面,但我想在这些设备上生成它们。
【问题讨论】:
最好的选择应该是ZXing's 库。我不确定是否支持 Windows Phone 7。
【讨论】:
【讨论】:
zxing 适用于 Android。 Java 编码器还没有移植到 C++(请随意加入并做出贡献……应该不会那么难。)在此之前,我一直在使用 psytec 编码器 (http://groups.google.com/group/zxing/msg/27e421daeb510d0f)。 cmets 是日文的,但很简单。
我对 WM7 没有任何要添加的内容。那是C#吗? zxing 有一个 C# 端口,但我不知道有人在积极维护它,也不知道它是否包含编码器。
【讨论】:
我一直在使用 ZXING 成功编码 QR 条码。但是,至少在当前版本中,它似乎对其他符号的编码支持有限(例如:PDF-417)。
我使用下面的代码sn-p:
// Encode the bitmap and display it on the screen
try {
// This will produce a 150x150 QR Barcode and display it on the screen.
Bitmap bm = encodeAsBitmap(barcodeContentString, BarcodeFormat.QR_CODE, 150, 150);
if(bm != null) {
barcodeImage.setImageBitmap(bm);
}
}
catch (WriterException e) { ... }
在本例中,“barcodeContentString”是正在编码的数据。 "barcodeImage" 是一个标准的 ImageView。
我没有在这里显示它,但我在显示条形码的整个时间段内都打开了屏幕。因此,我能够使用兼容 QR 的条码扫描器成功扫描条码。
【讨论】:
如果您要在线传输到另一台设备,那么您可能需要使用第 3 方二维码 API 来获取图像。调用 REST API 是跨平台移动应用的最佳选择。
此 API 为 URI 执行此操作:http://www.tag.cx/qr-codes/
您还可以托管自己的私有二维码生成器 API。
【讨论】:
这是另一个 Java 版本: http://qrcode.sourceforge.jp/
总结--“本项目在GPL v2下开发和分发二维码解码/编码库。项目目标是利用二维码嵌入信息用于全世界的可编程设备。二维码是工业标准,JIS-X- 0510 和 ISO/IEC18004。”
【讨论】:
还可以查看(我无法发布这些,因为 stackoverflow 阻止了多个 url): 和一个 .net 版本(如上面网站所列): http://www.codeproject.com/KB/cs/qrcode.aspx
【讨论】:
还可以查看(我无法发布这些,因为 stackoverflow 阻止了多个 url): 一个 python 版本(如上面网站上列出的): http://pyqrcode.sourceforge.net/
【讨论】:
我可能为时已晚,无法以任何方式帮助您,但我已经找到了一个很好的数据矩阵代码 SDK。更多说明在他们的网站 HERE 上,但要在此处也提供代码,您需要执行以下操作:
OBLinear *pLinear = [OBLinear new];
[pLinear setNBarcodeType: OB_CODE128A];
[pLinear setPDataMsg: [[NSString alloc] initWithString:@"AB"]];
//[pLinear setPSupData: [[NSString alloc] initWithString:@"14562"]];
[pLinear setFX: USER_DEF_BAR_WIDTH];
[pLinear setFY: USER_DEF_BAR_HEIGHT];
[pLinear setFLeftMargin:USER_DEF_LEFT_MARGIN];
[pLinear setFRightMargin:USER_DEF_RIGHT_MARGIN];
[pLinear setFTopMargin:USER_DEF_TOP_MARGIN];
[pLinear setFBottomMargin:USER_DEF_BOTTOM_MARGIN];
[pLinear setNRotate:OB_Rotate0];
UIFont *pTextFont = [UIFont fontWithName: @"Arial" size: 8.0f];
[pLinear setPTextFont: pTextFont];
[pLinear drawWithView:self.view];
【讨论】: