神奇的二维码

这篇博客揭示了二维码的神秘面纱,作者通过接触和学习,理解了二维码的工作原理,并在文中分享了相关的代码实现。文章包括一个工具类 Util 的介绍,以及两个测试类 Test 和 Test2,分别展示了不同类型的 JSON 依赖在二维码应用中的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以前看到二维码,总觉得这是一个神奇的东西,也没有去深入的了解过,最近一个偶然的机会接触到了二维码,真实的体会了它的奥妙之处,然后就从中汲取了一些养分与大家分享,希望对大家有用,代码如下:

工具类(Util )

import java.awt.BasicStroke;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Shape;
import java.awt.geom.RoundRectangle2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.OutputStream;
import java.util.Hashtable;
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.MultiFormatReader;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.Result;
import com.google.zxing.client.j2se.BufferedImageLuminanceSource;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.common.HybridBinarizer;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;

public class Util {
	private static final String CHARSET = "utf-8"; 
	private static final String FORMAT = "JPG"; 
	private static final int QRCODE_SIZE = 300; // 二维码尺寸  
	private static final int LOGO_WIDTH = 60; // LOGO高度  
	private static final int LOGO_HEIGHT = 60;// LOGO宽度  

	
	 /**
     * 生成二维码
     *
     * @param content
     *            内容 
     * @param logoPath
     *            LOGO地址 
     * @param destPath
     *            存放目录 
     * @param needCompress
     *            是否压缩LOGO 
     * @throws Exception
     */ 
	public static String encode(String content, String logoPath, String destPath, boolean needCompress,String fileName)
			throws Exception {
		BufferedImage image = QRCodeUtil.createImage(content, logoPath, needCompress);
		mkdirs(destPath);
		ImageIO.write(image, FORMAT, new File(destPath + "/" + fileName+".jpg"));
		
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值