标签:二维码
package liupeng;
import java.io.File;
import org.json.JSONException;
import org.json.JSONObject;
public class Test {
/**
* 描述:二维码的生成
* @author liupeng
* @param args
* @throws JSONException
*/
public static void main(String[] args) throws JSONException {
JSONObject obj = new JSONObject();
obj.put("name", "liupeng");
obj.put("age", 22);
obj.put("school", "[盐城师范学院]信息科学与技术学院->软件工程");
//String tomcatRoot = httpRequest.getSession().getServletContext().getRealPath("/SealAndSignImages");
//String path = QRCodeOperator.MakeQRCode(tomcatRoot,"刘鹏的二维码", obj.toString());
String path = QRCodeOperator.MakeQRCode("F:"+File.separator,"刘鹏的二维码", obj.toString());
if(path != ""){
System.out.println("二维码内容为:"+obj.toString());
}
}
}
package liupeng;
import java.awt.image.BufferedImage;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletRequest;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.Binarizer;
import com.google.zxing.BinaryBitmap;
import com.google.zxing.EncodeHintType;
import com.google.zxing.LuminanceSource;
import com.google.zxing.MultiFormatReader;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.Result;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.common.HybridBinarizer;
public class QRCodeOperator {
/**
* 生成二维码
* @param name 二维码文件名称(不带后缀)
* @param content 二维码内容
* @return 二维码图片路径
*/
public static String MakeQRCode(String filepath,String name, String content){
String retPath = "";
try {
//String content = "120605181003;http://www.cnblogs.com/jtmjx";
//String path = FileOperator.getRootPath();
String path = filepath;//httpRequest.getSession().getServletContext().getRealPath("/SealAndSignImages");
MultiFormatWriter multiFormatWriter = new MultiFormatWriter();
Map hints = new HashMap();
hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
BitMatrix bitMatrix = multiFormatWriter.encode(content, BarcodeFormat.QR_CODE, 200, 200,hints);
File file1 = new File(path, name+".jpg");
MatrixToImageWriter.writeToFile(bitMatrix, "jpg", file1);
retPath = file1.getAbsolutePath();
} catch (Exception e) {
e.printStackTrace();
}
return retPath;
}
public static void AnalysisQRCode(){
try {
MultiFormatReader formatReader = new MultiFormatReader();
String filePath = "F:/Users/Administrator/Desktop/testImage/test.jpg";
File file = new File(filePath);
BufferedImage image = ImageIO.read(file);;
LuminanceSource source = new BufferedImageLuminanceSource(image);
Binarizer binarizer = new HybridBinarizer(source);
BinaryBitmap binaryBitmap = new BinaryBitmap(binarizer);
Map hints = new HashMap();
hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
Result result = formatReader.decode(binaryBitmap,hints);
System.out.println("result = "+ result.toString());
System.out.println("resultFormat = "+ result.getBarcodeFormat());
System.out.println("resultText = "+ result.getText());
}
catch (Exception e) {
e.printStackTrace();
}
}
}
package liupeng;
import com.google.zxing.common.BitMatrix;
import javax.imageio.ImageIO;
import java.io.File;
import java.io.OutputStream;
import java.io.IOException;
import java.awt.image.BufferedImage;
public final 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);
}
}
}
注意:需要导入org.json.jar和zxing-core-2.0.jar
标签:二维码
原文地址:http://blog.csdn.net/liupeng_family/article/details/38304253