import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.BinaryBitmap;
import com.google.zxing.LuminanceSource;
import com.google.zxing.MultiFormatReader;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.Result;
import com.google.zxing.client.j2se.BufferedImageLuminanceSource;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.common.HybridBinarizer;
public class QrCodeTest {
/**
* @param args
*/
/**
* 编码
* @param contents 二维码内容
* @param width 二维码的宽度
* @param height 二维码的长度
* @param imagePath 二维码的图像存储路径
*/
private void encodeQrcode(String contents,int width,int height,String imagePath)
{
try
{
MultiFormatWriter multiFormatWriter = new MultiFormatWriter();
BitMatrix bitMatrix = multiFormatWriter.encode(contents, BarcodeFormat.QR_CODE, width, height);
MatrixToImageWriter.writeToFile(bitMatrix, "png", new File(imagePath));
}
catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
*
* @param imagePath 二维码的图像路径
* @return
*/
private String decode(String imagePath)
{
BufferedImage image = null;
Result result = null;
try
{
image=ImageIO.read(new File(imagePath));
if (image == null)
{
System.out.println("解码图片不存在!");
return null;
}
LuminanceSource luminanceSource = new BufferedImageLuminanceSource(image);
BinaryBitmap binaryBitmap = new BinaryBitmap(new HybridBinarizer(luminanceSource));
MultiFormatReader formatReader = new MultiFormatReader();
result = formatReader.decode(binaryBitmap);
return result.getText();
}
catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
public static void main(String[] args)
{
String contents="hello world!!!--------the first qrcode program by xlp.";
String imagePath="C:\\erweima.png";
int width = 300, height = 300;
QrCodeTest codeTest = new QrCodeTest();
//编码
// codeTest.encodeQrcode(contents, width, height, imagePath);
//解码
String urlCntents = codeTest.decode(imagePath);
System.out.println("urlCntents:"+urlCntents);
}
}
参考相关内容:http://lizhuohuang.iteye.com/blog/1966741