二维码的生成
来源:互联网 发布:linux解压zip命令行 编辑:程序博客网 时间:2024/05/17 04:06
近期做项目的时候,要求使用二维码生成。于是便整理了一下代码,以便以后查阅。
我使用的是google的ZXing生成二维码。
因为使用了maven构造的项目,所以首先要在pom.xml中配置一下:
<dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.2.1</version> </dependency>
辅助类(google提供 复制即用):
import com.google.zxing.common.BitMatrix;import javax.imageio.ImageIO;import java.io.File;import java.io.OutputStream;import java.io.IOException;import java.awt.image.BufferedImage;/** * @author Administrator * */public final class MatrixToImageWriter { private static final int BLACK = 0xFF000000; private static final int WHITE = 0xFFFFFFFF; private MatrixToImageWriter() {} /** * @param matrix * @return */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; } /** * @param matrix * @param format * @param file * @throws IOException */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); } } /** * @param matrix * @param format * @param stream * @throws IOException */public static void writeToStream(BitMatrix matrix, String format, OutputStream stream) throws IOException { BufferedImage image = toBufferedImage(matrix); if (!ImageIO.write(image, format, stream)) { throw new IOException("Could not write an image of format " + format); } }}
操作类(自己改的。。在实际中根据具体情况写):
import java.util.HashMap;import java.util.Map;import javax.servlet.http.HttpServletResponse;import com.google.zxing.BarcodeFormat;import com.google.zxing.EncodeHintType;import com.google.zxing.MultiFormatWriter;import com.google.zxing.common.BitMatrix;/** * 实现二维码输出 * * @author Administrator * */public class ZxingCode { /** * 输出二维码到web * * @param str * 需要显示的文本 * @param response */ public static void code(String str, HttpServletResponse response) { MultiFormatWriter multiFormatWriter = new MultiFormatWriter(); Map<EncodeHintType, Object> hints = new HashMap<EncodeHintType, Object>(); hints.put(EncodeHintType.CHARACTER_SET, "UTF-8"); try { BitMatrix bitMatrix = multiFormatWriter.encode(str, BarcodeFormat.QR_CODE, 200, 200, hints); MatrixToImageWriter.writeToStream(bitMatrix, "jpg", response.getOutputStream()); } catch (Exception e) { e.printStackTrace(); } }}
这里用到的仅仅是str封装的文本信息,其余的都是固定代码。200,200为宽高。
MatrixToImageWriter.writeToStream用数据流输出到页面
MatrixToImageWriter.writeToFile以图片的格式写入文件
网上还有解析二维码的操作。日后有时间,在总结一下。
0 0
- googlechart的二维码生成
- iOS二维码的生成
- 二维码的生成
- 二维码生成的记载
- 二维码的服务端生成
- 二维码的生成
- 二维码的扫描、生成
- 生成二维码的工具
- 二维码的生成
- 二维码的生成
- 二维码的生成
- 原生二维码的生成
- 二维码的生成
- 二维码的生成
- 二维码的生成
- 二维码的生成/扫描
- 生成文字的二维码
- IOS 二维码的生成
- HBuilder之Chrome调试Android手机
- mysql安装异常
- MyBatis学习总结(四)——解决字段名与实体类属性名不相同的冲突
- PHP面试题之字符串反转
- 开心一笑
- 二维码的生成
- U_boot 的 bootcmd 和bootargs参数详解
- 从复选框接受数据,php进行数据操作
- 图论部分算法整理
- nodeJs模块查找顺序
- Linux 第一次登陆修改密码 chage -d 0
- 彻底搞清 C/C++中a++与++a的区别
- VR开发从何入手的实战分享
- Mars.2 Release (4.5.2) 安装fat_jar