`
happyqing
  • 浏览: 3194116 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java生成二维码QRCode Zxing SwetakeQRCode barcode4j

阅读更多

 

最常见的就是QRcode二维码

一、Zxing

1.推荐使用Zxing Google出的,大厂商,文档齐全。也可生成条形码,Android上一般也采用Zxing。

2.可生成、读取二维码,可嵌入图片(logo),支持中文

3.编写代码量很少,就可生成二维码

4.生成的二维码的位点少,好识别

5.生成的二维码,占用存储空间小,2K

所需jar包:core-2.2.jar,jdk 1.6。自2.2以后需要jdk1.7,否则会报错

 Exception in thread "main" java.lang.UnsupportedClassVersionError: com/google/zxing/EncodeHintType : Unsupported major.minor version 51.0

所需jar包:core-2.2.jar,附件提供

 

二、SwetakeQRCode

1.下载jar包都费劲,不推荐

2.可生成、读取二维码,可嵌入图片(logo),支持中文

3.编写代码量较多

4.生成的二维码的位点多,

5.生成的二维码,占用存储空间少,1K

所需jar包:QRCode.jar

代码参考:

http://www.oschina.net/code/snippet_1762525_49027

 

三、 barcode4j

datamatrix

 

PDF417

 

采用datamatrix算法,生成的二维码是长方形的,不是我想要的

貌似不支持中文

存储容量较大,8K-24K,因为他的黑点旁边有灰色格线

所需jar包:avalon-framework-4.2.0.jar,barcode4j.jar

代码参考:

http://liuwei1981.iteye.com/blog/368812

有一句有问题

// ret = FileUtil.getInputStreamFromBytes(baos.toByteArray());
   ret = new ByteArrayInputStream(baos.toByteArray());

补充方法

public static void saveFile(InputStream is, String fileName) throws Exception {
	FileOutputStream fos = new FileOutputStream(new File(fileName));
	byte[] b = new byte[1024];
	while((is.read(b)) != -1){
		fos.write(b);
	}
	is.close();
	fos.close();
}

public static void main(String[] args) throws Exception {
	InputStream is = CodeService.getInstance().getCodeImage("Tiantian,I love you!", CodeService.BARCODE_TYPE );
	saveFile(is, "D:/barcode4j.png");
}

 

二维码里嵌图片logo,就是利用二维码容错机制实现的,其实就是在二维码上画的图片,

 

Zxing样例:

参考:http://tec.5lulu.com/detail/110d4n2ehcg9a857d.html#tec_dir1

import java.io.File;
import java.util.Hashtable;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.common.BitMatrix;

public class Main {
	public static void main(String[] args) throws Exception {
		String text = "甜甜,我爱你!"; // 二维码内容
		int width = 300; // 二维码图片宽度
		int height = 300; // 二维码图片高度
		String format = "png";// 二维码的图片格式

		Hashtable<EncodeHintType, String> hints = new Hashtable<EncodeHintType, String>();
		hints.put(EncodeHintType.CHARACTER_SET, "utf-8"); // 内容所使用字符集编码

		BitMatrix bitMatrix = new MultiFormatWriter().encode(text, BarcodeFormat.QR_CODE, width, height, hints);
		// 生成二维码
		File outputFile = new File("d:" + File.separator + "new.png");
		MatrixToImageWriter.writeToFile(bitMatrix, format, outputFile);
	}
}

 

import java.awt.image.BufferedImage;  
import java.io.File;  
import java.io.IOException;  
import java.io.OutputStream;  
  
import javax.imageio.ImageIO;  
  
import com.google.zxing.common.BitMatrix;  
  
/** 
 * 二维码的生成需要借助MatrixToImageWriter类,该类是由Google提供的,可以将该类直接拷贝到源码中使用 
 */  
public class MatrixToImageWriter {  
    private static final int BLACK = 0xFF000000;  
    private static final int WHITE = 0xFFFFFFFF;  
  
    private MatrixToImageWriter() {  
    }  
  
    public static BufferedImage toBufferedImage(BitMatrix matrix) {  
        int width = matrix.getWidth();  
        int height = matrix.getHeight();  
        BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);  
        for (int x = 0; x < width; x++) {  
            for (int y = 0; y < height; y++) {  
                image.setRGB(x, y, matrix.get(x, y) ? BLACK : WHITE);  
            }  
        }  
        return image;  
    }  
  
    public static void writeToFile(BitMatrix matrix, String format, File file) throws IOException {  
        BufferedImage image = toBufferedImage(matrix);  
        if (!ImageIO.write(image, format, file)) {  
            throw new IOException("Could not write an image of format " + format + " to " + file);  
        }  
    }  
  
    public static void writeToStream(BitMatrix matrix, String format, OutputStream stream) throws IOException {  
        BufferedImage image = toBufferedImage(matrix);  
        if (!ImageIO.write(image, format, stream)) {  
            throw new IOException("Could not write an image of format " + format);  
        }  
    }  
}

  

js jquery.qrcode生成二维码 带logo 支持中文

http://happyqing.iteye.com/blog/2294628

 

ZXing生成二维码,以及给二维码添加Logo

http://my.oschina.net/Rayn/blog/215055

Zxing和QR CODE 生成与解析二维码实例(带logo篇)

http://blog.csdn.net/gao36951/article/details/41149049

ZXing生成二维码和带logo的二维码,模仿微信生成二维码效果

http://blog.csdn.net/sanfye/article/details/45749139

带圆角LOGO的QrCode二维码实时生成 (这个格式太乱了)

http://www.th7.cn/Program/java/201412/336803.shtml

 

  • 大小: 991 Bytes
  • 大小: 8 KB
  • 大小: 24 KB
  • 大小: 1.4 KB
分享到:
评论

相关推荐

    Zxing生成二维码(解决中文乱码)

    这是Zxing的源码,没有打包成jar利于学习使用。...使用时注意path的默认地址,Main类中是生成二维码的代码,GetMain类中是读取二维码的代码。 eclipse中Ctrl+Shift+R快速查找类 希望对你有所帮助。

    Java三种生成条形码的源码(barcode4j、jbarcode、google-zxing)

    以下是关于使用Java生成条形码的三个主要方法的详细解释:barcode4j、jbarcode和google-zxing。 1. **barcode4j**: Barcode4J是一个开源的Java库,基于Apache 2.0许可,专门用于生成各种类型的条形码。它使用XML...

    C# ZXing.Net 生成二维码支持中文Demo

    错误纠正级别用于在二维码部分损坏时仍能恢复数据,通常有L(低)、M(中)、Q(高)和H(最高)四个等级,数值越大,纠错能力越强,但生成的二维码也会更大。 为了更好地理解和使用这个Demo,你可以创建一个新的C#...

    C# 生成二维码源码 可生成图片 底部可显示文字

    在C#中生成二维码,我们可以利用开源库,如 ZXing.Net(也称为 BarcodeReader 和 BarcodeWriter) 或 QRCoder。这两个库都提供了简单易用的API,帮助开发者快速实现二维码的生成和解析。 ZXing.Net 是一个流行的...

    VB6生成二维码.rar

    描述中提到的“用了别人的东西改了一下”,指的是开发者可能利用了现有的开源二维码库,如ZXing (Zebra Crossing) 或qrcode4vb等,对源代码进行了一些修改,以适应自己的需求。 ZXing是一个广泛使用的开源项目,...

    java实现条形码二维码生成含文字标签信息

    本篇将深入探讨如何使用Java结合ZXing库来生成包含文字标签信息的条形码和二维码。 ZXing,全称为“Zebra Crossing”,是一个开源的、跨平台的条码读取和生成项目。它支持多种条码格式,包括一维条形码(如EAN-13、...

    c# qrcode用于生成二维码

    在C#中,我们通常会引入第三方库,如“ZXing.Net”(又称BarcodeReader),这是一个开源的、跨平台的条形码和二维码解码库,也支持生成二维码。你可以通过NuGet包管理器将其添加到项目中。 安装ZXing.Net库后,你...

    android二维码扫描ZXingDemo

    在本示例"android二维码扫描ZXingDemo"中,我们将探讨如何集成ZXing到Android应用中实现二维码扫描功能。 首先,我们需要在Android项目中引入ZXing库。可以通过两种方式实现:一是直接将ZXing的源码导入项目,二是...

    C# 二维码生成、识别,去除白边、任意颜色

    同样,ZXing.Net库提供了`BarcodeReader`类,用于读取和解析二维码图像。它支持多种图像格式,并能自动定位和识别图像中的多个二维码。通过调用`Read()`方法,我们可以获取到二维码中的数据。 在实际应用中,我们...

    Delphi之生成二维码程序

    在Delphi中,有许多第三方库可以用来生成二维码,如`ZXing.Net Barcode Reader`(原名`ZXing.Delphi`)和`qrcode-delphi`等。如果`QRCode.pas`是一个自定义实现,那么我们需要理解这个单元中的函数和过程,以便正确...

    四种生成二维码示例

    本例介绍了四种二维码生成方式: 1. java下有三种: zxing(google开源项目), qrcode(官网:http://www.qrcode.com/), barcode4j(官网:http://barcode4j.sourceforge.net/) 2. js下一种,基于jquery-qrcode...

    zxing生成条形码和二维码并打印(Vb.net).rar

    ZXing,全称为Zebra Crossing,是一个开源的、多平台的条形码和二维码读取与生成库。这个项目在Java平台上起源于2007年,后来发展出多个语言的版本,包括.NET Framework的ZXing.Net。在VB.NET环境下,ZXing库提供了...

    java生成一维码和二维码程序以及jar包

    生成这些编码的库在Java中有很多选择,例如ZXing(Zebra Crossing)和Java Barcode Generator。 ZXing是一个开源项目,提供了多种条码和二维码的读取与生成功能。要使用ZXing生成一维码和二维码,你需要引入ZXing的...

    android端生成二维码源码

    在Android应用开发中,生成二维码主要使用了开源库,如ZXing(Zebra Crossing)或AndroidX的` Barcode`组件。 ZXing是一个流行的开源项目,提供了多种条形码和二维码的读写功能。要使用ZXing在Android中生成二维码...

    (原创)Delphi XE生成二维码并在fastreport中调用显示

    ZXing是一个开源的、跨平台的条码和二维码读取与生成库,而QrCodeDelphi则是专为Delphi设计的轻量级二维码生成组件。这里我们以ZXing为例,介绍如何在Delphi项目中集成二维码生成功能。 1. 集成ZXing库: - 下载...

    java将链接生成一个二维码.rar

    在Java中,我们可以利用开源库来生成二维码,如`ZXing (Zebra Crossing)`或`qrcode-java`。这两个库都提供了方便的API,可以轻松地将字符串(比如URL)转换为二维码图像。 3. **ZXing库的使用** `ZXing`库,也...

    C#窗体三种方法生成二维码并打印的小程序

    Zxing.NET是C#版本的Zxing(又名BarcodeReader)库,它提供了读取和生成条形码与二维码的能力。首先,需要在项目中引入Zxing.Net.Bindings库,通过以下代码生成二维码: ```csharp usingZXing; usingZXing.QrCode; ...

    C#借助第三方类库,生成二维码到word上

    Zxing.Net(也称为 BarcodeReader 或 BarcodeWriter)是一个流行的开源库,它可以用于读取和生成多种条码和二维码,包括QR码。要使用此库,首先需要通过NuGet包管理器安装`ZXing.Net`。 安装完成后,可以创建一个新...

    C#根据字符串生成二维码并显示

    在C#中,我们可以使用开源库如`ZXing.Net`(又称 BarcodeReader 或 BarcodeWriter)来处理二维码的生成和读取。 1. **安装ZXing.Net库**: 在Visual Studio中,你可以通过NuGet包管理器来安装ZXing.Net。在项目...

Global site tag (gtag.js) - Google Analytics