【发布时间】:2010-11-11 08:47:04
【问题描述】:
我正在寻找Java(J2SE)中的开源二维码图像生成器组件,但开源许可证不能是GPL许可证(需要包含在封闭源项目中)。
顺便说一句,我无法从该项目访问网络,因此没有 Google API。
【问题讨论】:
我正在寻找Java(J2SE)中的开源二维码图像生成器组件,但开源许可证不能是GPL许可证(需要包含在封闭源项目中)。
顺便说一句,我无法从该项目访问网络,因此没有 Google API。
【问题讨论】:
ZXing是一个用Java实现的开源、多格式一维/二维条码图像处理库。 它是根据 Apache 许可 发布的,因此它允许使用源代码来开发专有软件以及免费和开源软件。
【讨论】:
Mercer - 不,库中也有一个编码器。 com.google.zxing.qrcode.encoder。除了使用 Google Chart API 的示例网络应用程序之外,我们还提供了该应用程序
【讨论】:
MatrixToImageWriter 使用 BitMatrix,而不是 QRCode.getMatrix 返回的 ByteMatrix。通过查看android源代码,我发现了以下概念证明解决方案:
try {
MultiFormatWriter writer = new MultiFormatWriter();
Hashtable hints = new Hashtable();
hints.put( EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.Q );
MatrixToImageWriter.writeToFile( writer.encode( "hello world", BarcodeFormat.QR_CODE, 800, 800, hints ),
"png", new File( "/tmp/qrcode.png" ) );
} catch ( Exception e ) {
System.out.println( "failure: " + e );
}
顺便说一句,在 API 中使用 Hashtable 并不干净。请使用地图。反正没有多少人还在使用 Hashtable,你应该几乎总是使用 HashMap 来代替(除了少数用例)。
【讨论】:
Hashtable 来兼容J2ME,它没有Map。但是自从 v2.0 对 J2ME 的支持被删除并且 API 采用了Map。