java中的二维码图像生成器(开源但没有GPL)

Posted

技术标签:

【中文标题】java中的二维码图像生成器(开源但没有GPL)【英文标题】:QR codes image generator in java (open source but no GPL) 【发布时间】:2010-11-11 08:47:04 【问题描述】:

我正在寻找Java(J2SE)中的开源二维码图像生成器组件,但开源许可证不能是GPL许可证(需要包含在封闭源项目中)。

顺便说一句,我无法从该项目访问网络,因此没有 Google API。

【问题讨论】:

【参考方案1】:

ZXing是一个用Java实现的开源、多格式一维/二维条码图像处理库。 它是根据 Apache 许可 发布的,因此它允许使用源代码来开发专有软件以及免费和开源软件。

【讨论】:

不生成二维码。它只扫描它们。 在他们的二维码生成器网络应用示例中,他们使用code.google.com/apis/chart/types.html#qrcodes 生成二维码。 我无法从项目访问网络,所以没有谷歌 API 或网络服务。 然而,他们确实已经完成了二维码生成器的实现——不是二维码图像生成器。所以你可以试试这个项目。 否,该项目既有用于生成二维码的 GWT 前端(使用 Google Chart Server 进行实际图像生成),也有一个可以嵌入的原生 Java 二维码生成器。【参考方案2】:

Mercer - 不,库中也有一个编码器。 com.google.zxing.qrcode.encoder。除了使用 Google Chart API 的示例网络应用程序之外,我们还提供了该应用程序

【讨论】:

好的,谢谢!我只需要使用 qrCode.getMatrix().getArray(); 创建一个图像 如果其他人这样做,这是基本思想。使用 Encoder.encode() 来“填写”新实例化 QRCode 的详细信息。然后按照上面的建议从 QRCode.getMatrix().getArray() 获取 byte[][] 。每行字节似乎是 QRCode 的一行像素,每个字节为零或一。此时,您可以将像素绘制到 BufferedImage 或用它制作 Raster 或其他东西将其转换为 AWT 图像。 ...或使用提供的类 MatrixToImageWriter 为您完成所有这些!【参考方案3】:

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

以上是关于java中的二维码图像生成器(开源但没有GPL)的主要内容,如果未能解决你的问题,请参考以下文章

开源)嗨,Java,你可以生成金山词霸的二维码分享海报吗?

超级好用的 Java 的缩略图生成库

有没有办法从张量流中的图像中获取 IUV 图?

java识别条形码api都有哪些

更新整理了一大波热门免费可用的API大全

我想使用 OpenCV 检测静态图像中的二维条码,但文档似乎没有涵盖它