博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java 通过zxing生成二维码
阅读量:5235 次
发布时间:2019-06-14

本文共 2368 字,大约阅读时间需要 7 分钟。

1.基本类提供二维码生成工具类

package com.green.util;import java.awt.image.BufferedImage;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.IOException;import java.io.OutputStream;import javax.imageio.ImageIO;import com.google.zxing.common.BitMatrix;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 byte[] writeToStream(BitMatrix matrix, String format) throws IOException {		ByteArrayOutputStream stream=new ByteArrayOutputStream();		BufferedImage image = toBufferedImage(matrix);			if (!ImageIO.write(image, format, stream)) {			throw new IOException("Could not write an image of format " + format);		}			return stream.toByteArray();	}}

  2.调用工具方法获取图片的二进制

package com.green.util;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.common.BitMatrix;/** * @author maybo * */public class QrCodeGenerator {	public static byte[] build(String content) throws IOException, WriterException {	        int width = 300; 	        int height = 300; 	        //��ά���ͼƬ��ʽ 	        String format = "gif"; 	        Hashtable hints = new Hashtable(); 	        //������ʹ�ñ��� 	        hints.put(EncodeHintType.CHARACTER_SET, "utf-8"); 	        BitMatrix bitMatrix = new MultiFormatWriter().encode(content, 	                BarcodeFormat.QR_CODE, width, height, hints); 	       return MatrixToImageWriter.writeToStream(bitMatrix, format);	}}

  

转载于:https://www.cnblogs.com/maybo/p/5183740.html

你可能感兴趣的文章
来自XP的道别信
查看>>
js如何获取response header信息
查看>>
python_文件的打开和关闭
查看>>
mysql archive存储引擎导入数据报duplicate key
查看>>
ADO.NET介绍
查看>>
iOS: 数据持久化方案
查看>>
【C#】【Thread】Monitor和Lock
查看>>
UVALive - 3635 - Pie(二分)
查看>>
ext4.0 代理 的使用
查看>>
数据检查约束类型和语法
查看>>
AngularJS实战之路由ui-view
查看>>
使用jQuery+huandlebars防止编码注入攻击
查看>>
C#的托管与非托管大难点
查看>>
[转]HTTPS简谈
查看>>
(图片)jsp上传图片,进行缩放处理
查看>>
集合类List,set,Map 的遍历方法,用法和区别
查看>>
HDU-2577-How to Type
查看>>
java日志框架之logback——布局详细说明书地址
查看>>
Java Selenium (十二) 操作弹出窗口 & 智能等待页面加载完成 & 处理 Iframe 中的元素...
查看>>
Scala入门系列(十):函数式编程之集合操作
查看>>