内容出处https://study.163.com/course/courseMain.htm?courseId=1209288803
GitHub网址https://github.com/zxing/zxing
jar包下载地址https://github.com/zxing/zxing/wiki/Getting-Started-Developing
第一个jar包
第二个jar包
总共下载两个jar包
将两个jar包添加到项目中
生成二维码,源代码
package my; import java.io.File; import java.nio.file.Path; import java.util.HashMap; import com.google.zxing.BarcodeFormat; import com.google.zxing.EncodeHintType; import com.google.zxing.MultiFormatWriter; import com.google.zxing.client.j2se.MatrixToImageWriter; import com.google.zxing.common.BitMatrix; import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel; public class test { public static void main(String[] args) { // TODO Auto-generated method stub int width = 300; int height = 300; String content = "https://cn.bing.com/"; //二维码的参数设置 HashMap<EncodeHintType, Object> hints = new HashMap(); hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");//字符集 hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);//纠错级别 hints.put(EncodeHintType.MARGIN, 2);//空白 //hints.put(EncodeHintType.QR_VERSION, 5);//版本1-40,内部会自动适应,不用设置 try { MultiFormatWriter writer = new MultiFormatWriter(); BitMatrix bitMatrix = writer.encode(content, BarcodeFormat.QR_CODE, width, height, hints); Path file = new File("D:\1\2\二维码.png").toPath(); MatrixToImageWriter.writeToPath(bitMatrix, "png", file); }catch(Exception e) { e.printStackTrace(); } } }
演示
解析二维码,源代码
package my; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.HashMap; import javax.imageio.ImageIO; import javax.naming.spi.DirStateFactory.Result; import com.google.zxing.BinaryBitmap; import com.google.zxing.DecodeHintType; import com.google.zxing.MultiFormatReader; import com.google.zxing.NotFoundException; import com.google.zxing.client.j2se.BufferedImageLuminanceSource; import com.google.zxing.common.HybridBinarizer; public class test { public static void main(String[] args) throws NotFoundException, IOException { // TODO Auto-generated method stub File file = new File("D:\1\2\二维码.png"); BufferedImage image = ImageIO.read(file); //读取图片 MultiFormatReader formatReader = new MultiFormatReader(); BinaryBitmap binaryBitmap = new BinaryBitmap(new HybridBinarizer(new BufferedImageLuminanceSource(image))); //解码参数 HashMap<DecodeHintType, Object> hints = new HashMap<>(); hints.put(DecodeHintType.CHARACTER_SET, "UTF-8"); com.google.zxing.Result result = formatReader.decode(binaryBitmap, hints); System.out.println("类型:" + result.getBarcodeFormat()); System.out.println("内容:" + result.getText()); System.out.println("exit"); } }
演示
程序员阿飞
2021年5月21日