如何使用QRCodeUtil.java生成二维码?
- 内容介绍
- 文章标签
- 相关推荐
本文共计774个文字,预计阅读时间需要4分钟。
javapackage web;
import java.awt.AlphaComposite;import java.awt.Color;import java.awt.Graphics2D;import java.awt.RenderingHints;import java.awt.geom.RoundRectangle2D;import java.awt.image.BufferedImage;import java.io.File;
QRCodeUtil.javapackage web; import java.awt.AlphaComposite; import java.awt.Color; import java.awt.Graphics2D; import java.awt.RenderingHints; import java.awt.geom.RoundRectangle2D; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.util.Hashtable; import java.util.Map; import javax.imageio.ImageIO; import com.google.zxing.BarcodeFormat; import com.google.zxing.BinaryBitmap; import com.google.zxing.DecodeHintType; import com.google.zxing.EncodeHintType; import com.google.zxing.LuminanceSource; import com.google.zxing.MultiFormatReader; import com.google.zxing.MultiFormatWriter; import com.google.zxing.ReaderException; 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; import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel; /** * 二维码编码&解码 * @Author: ChenGuiYong 2015年7月13日 上午11:09:56 * @Version: $Id$ * @Desc:
*/ public class QRCodeUtil { private static final int BLACK = 0xFF000000; private static final int WHITE = 0xFFFFFFFF; /* * 解码: * 1 将图片反解码为二维矩阵 * 2 将该二维矩阵解码为内容 * */ @SuppressWarnings({ "rawtypes", "unchecked" }) public static void decode(String imgPath) { try { File file = new File(imgPath);//获取该图片文件 BufferedImage image; try { image = ImageIO.read(file); if (image == null) { System.out.println("Could not decode image"); } LuminanceSource source = new BufferedImageLuminanceSource(image); BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source)); Result result; Hashtable hints = new Hashtable();//将图片反解码为二维矩阵 hints.put(DecodeHintType.CHARACTER_SET, "UTF-8"); result = new MultiFormatReader().decode(bitmap, hints);//将该二维矩阵解码成内容 String resultStr = result.getText(); System.out.println("解码结果:"+resultStr); } catch (IOException ioe) { System.out.println(ioe.toString()); } catch (ReaderException re) { System.out.println(re.toString()); } } catch (Exception ex) { ex.printStackTrace(); } } /** * 编码 * @author ChenGuiYong * @data 2015年7月13日 上午11:06:20 * @param contents * @param width * @param height * @param imgPath * @param logoPath * @return */ public static boolean encode(String contents, int width, int height, String imgPath,String logoPath) { Map本文共计774个文字,预计阅读时间需要4分钟。
javapackage web;
import java.awt.AlphaComposite;import java.awt.Color;import java.awt.Graphics2D;import java.awt.RenderingHints;import java.awt.geom.RoundRectangle2D;import java.awt.image.BufferedImage;import java.io.File;
QRCodeUtil.javapackage web; import java.awt.AlphaComposite; import java.awt.Color; import java.awt.Graphics2D; import java.awt.RenderingHints; import java.awt.geom.RoundRectangle2D; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.util.Hashtable; import java.util.Map; import javax.imageio.ImageIO; import com.google.zxing.BarcodeFormat; import com.google.zxing.BinaryBitmap; import com.google.zxing.DecodeHintType; import com.google.zxing.EncodeHintType; import com.google.zxing.LuminanceSource; import com.google.zxing.MultiFormatReader; import com.google.zxing.MultiFormatWriter; import com.google.zxing.ReaderException; 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; import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel; /** * 二维码编码&解码 * @Author: ChenGuiYong 2015年7月13日 上午11:09:56 * @Version: $Id$ * @Desc:
*/ public class QRCodeUtil { private static final int BLACK = 0xFF000000; private static final int WHITE = 0xFFFFFFFF; /* * 解码: * 1 将图片反解码为二维矩阵 * 2 将该二维矩阵解码为内容 * */ @SuppressWarnings({ "rawtypes", "unchecked" }) public static void decode(String imgPath) { try { File file = new File(imgPath);//获取该图片文件 BufferedImage image; try { image = ImageIO.read(file); if (image == null) { System.out.println("Could not decode image"); } LuminanceSource source = new BufferedImageLuminanceSource(image); BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source)); Result result; Hashtable hints = new Hashtable();//将图片反解码为二维矩阵 hints.put(DecodeHintType.CHARACTER_SET, "UTF-8"); result = new MultiFormatReader().decode(bitmap, hints);//将该二维矩阵解码成内容 String resultStr = result.getText(); System.out.println("解码结果:"+resultStr); } catch (IOException ioe) { System.out.println(ioe.toString()); } catch (ReaderException re) { System.out.println(re.toString()); } } catch (Exception ex) { ex.printStackTrace(); } } /** * 编码 * @author ChenGuiYong * @data 2015年7月13日 上午11:06:20 * @param contents * @param width * @param height * @param imgPath * @param logoPath * @return */ public static boolean encode(String contents, int width, int height, String imgPath,String logoPath) { Map
