日期:2014-05-20  浏览次数:21045 次

菜鸟问题,java写二维码生成器
用java写个二维码生成器用多久能写完,有大侠给点代码或流程图之类的参考资料么?急代码一定要有中文注释啊,没注释我看不懂.

------解决方案--------------------
分给我吧
------解决方案--------------------
http://marshal.easymorse.com/archives/2791

看下这个……
------解决方案--------------------
http://www.javaeye.com/topic/368812
------解决方案--------------------
用zxing的话,几分钟就搞定了。

写二维码的代码:
import java.io.File;
import java.io.IOException;
import java.util.Hashtable;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.WriterException;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;

public class QREncoder
{
public static void main(String[] args)
{
String content = "酒至颜自解,声和心亦宣。";
Hashtable<EncodeHintType, String> hints = new Hashtable<EncodeHintType, String>();
hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
BitMatrix matrix = null;
try
{
MultiFormatWriter writer = new MultiFormatWriter();
matrix = writer.encode(content, BarcodeFormat.QR_CODE, 300, 300, hints);

catch (WriterException e)
{
e.printStackTrace();
}

File file = new File("D:/qrimage.png");
try
{
MatrixToImageWriter.writeToFile(matrix, "png", file);

catch (IOException e)
{
e.printStackTrace();
}
}
}

读二维码的代码:
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.Hashtable;

import javax.imageio.ImageIO;

import com.google.zxing.BinaryBitmap;
import com.google.zxing.DecodeHintType;
import com.google.zxing.LuminanceSource;
import com.google.zxing.MultiFormatReader;
import com.google.zxing.NotFoundException;
import com.google.zxing.Result;
import com.google.zxing.client.j2se.BufferedImageLuminanceSource;
import com.google.zxing.common.HybridBinarizer;

public class QRDecoder
{
public static void main(String[] args)
{
File file = new File("D:/qrimage.png");
BufferedImage bufferedImage = null;

try
{
bufferedImage = ImageIO.read(file);

catch (IOException e)
{
e.printStackTrace();
}

LuminanceSource source = new BufferedImageLuminanceSource(bufferedImage);
BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));

Hashtable<DecodeHintType, String> hints = new Hashtable<DecodeHintType, String>();
hints.put(DecodeHintType.CHARACTER_SET, "UTF-8");
Result result = null;

try
{
result = new MultiFormatReader().decode(bitmap, hints);

catch (NotFoundException e)
{
e.printStackTrace();
}

System.out.println(result.toString());
}
}