使用JAVA生成二维码

来源:互联网 发布:战地之王透视源码 编辑:程序博客网 时间:2024/06/14 03:33

今天跟大家分享一下,如何使用JAVA生成二维码,废话不多说,上图

第一步,添加项目所需的 maven依赖

Clipboard Image.png

会自动导入core-3.2.0.jar和javase-3.2.0.jar两个jar包

Clipboard Image.png

package com.zz.QRcode.utils;import java.io.File;import java.io.IOException;import java.util.Hashtable;import com.google.zxing.BarcodeFormat;import com.google.zxing.EncodeHintType;import com.google.zxing.MultiFormatWriter;import com.google.zxing.WriterException;import com.google.zxing.client.j2se.MatrixToImageWriter;import com.google.zxing.common.BitMatrix;public class QRcodeUtil {/** * @param content 二维码内容 * @param width   二维码图片的宽度 * @param height  二维码图片的高度 * @param format  二维码图片的格式 * @param path    二维码写入的路径 */public static void createQRcode(String content,int width,int height,String format,String file){Hashtable<EncodeHintType, String> hints = new Hashtable<EncodeHintType, String>();// 设置字符编码hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");//创建二维码模型try {// 生成二维码BitMatrix bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, width, height, hints);MatrixToImageWriter.writeToPath(bitMatrix, format, new File(file).toPath());} catch (IOException e) {e.printStackTrace();} catch (WriterException e) {e.printStackTrace();}}/** * @param content 二维码内容 * @param format  二维码图片的格式 * @param path    二维码写入的路径 */public static void createQRcodeDefaultSize(String content,String format,String file){createQRcode(content, 300, 300, format, file);}/** * @param content 二维码内容 * @param path    二维码写入的路径 */public static void createPngQRcodeDefaultSize(String content,String file){createQRcodeDefaultSize(content, "png", file);}/** * @param content 二维码内容 * @param path    二维码写入的路径 * @param width   二维码图片的宽度 * @param height  二维码图片的高度 */public static void createPngQRcode(String content,String file,int width,int height){createQRcode(content, width, height, "png", file);}}

这里使用的是MatrixToImageWriter类,该类由goole提供,可以直接使用

第三步,测试生成二维码

package com.zz.QRcode.test;import com.zz.QRcode.utils.QRcodeUtil;public class Test {@org.junit.Testpublic void test() {String content = "http://urfunny.xyz";String file = "F:/壁纸/test.png";//使用默认大小的png格式生成二维码QRcodeUtil.createPngQRcodeDefaultSize(content,file);}}

此时我们查看生成的二维码

Clipboard Image.png

第四步,用手机扫描二维码

Clipboard Image.png

第五步,使用JAVA解析二维码

在工具类中添加方法

     /** *  * @param file 二维码图片所在的路径 * @return 返回解析到的二维码内容 */public static String decodeQRcode(String file){String content = null;try {//创建图片缓存流BufferedImage image = ImageIO.read(new File(file));LuminanceSource source = new BufferedImageLuminanceSource(image);          Binarizer binarizer = new HybridBinarizer(source);          BinaryBitmap binaryBitmap = new BinaryBitmap(binarizer);          //设置解析提示        Map<DecodeHintType, Object> hints = new HashMap<DecodeHintType, Object>();        //设置字符编码        hints.put(DecodeHintType.CHARACTER_SET, "UTF-8");          // 对图像进行解码              Result result = new MultiFormatReader().decode(binaryBitmap, hints);            content = result.getText();} catch (IOException e) {e.printStackTrace();} catch (NotFoundException e) {e.printStackTrace();}  return content;}
第六步,使用JAVA解析二维码
package com.zz.QRcode.test;import com.zz.QRcode.utils.QRcodeUtil;public class Test {@org.junit.Testpublic void test() {String file = "F:/壁纸/test.png";//使用java解析二维码String content = QRcodeUtil.decodeQRcode(file);System.out.println(content);}}

控制台打印结果

Clipboard Image.png


0 0
原创粉丝点击