首页 > 代码库 > 二维码的生成
二维码的生成
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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。