zxing生成二维码转base64 img直接显示 Image对象转Base64码(java)

public static String encodeToBase64(String content){

MultiFormatWriter multiFormatWriter = new MultiFormatWriter();
Map hints = new HashMap();
hints.put(EncodeHintType.CHARACTER_SET, "UTF-8"); //设置字符集编码类型
BitMatrix bitMatrix = null;
try {
bitMatrix = multiFormatWriter.encode(content, BarcodeFormat.QR_CODE, 300, 300,hints);
BufferedImage image = toBufferedImage(bitMatrix);
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
//输出二维码图片流
try {
ImageIO.write(image, "png",outputStream);
return Base64.encodeBase64String(outputStream.toByteArray());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (WriterException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
return null;

}

基础转换

public void putImage(String key, Image image) throws IOException {
// Image->bufferreImage
BufferedImage bimg = new BufferedImage(image.getWidth(null),
image.getHeight(null), BufferedImage.TYPE_INT_RGB);
Graphics g = bimg.createGraphics();
g.drawImage(image, 0, 0, null);
g.dispose();

// bufferImage->base64
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
ImageIO.write(bimg, "jpg", outputStream);
BASE64Encoder encoder = new BASE64Encoder();
String base64Img = encoder.encode(outputStream.toByteArray());

// 输出
this.content = this.content.replace("@{" + key + "}",
"<img src= \"data:image/png;base64," + base64Img + "\"/>");
}

public void putImage(String key, Image image, int width, int height)
throws IOException {
// Image->bufferreImage
BufferedImage bimg = new BufferedImage(image.getWidth(null),
image.getHeight(null), BufferedImage.TYPE_INT_RGB);
Graphics g = bimg.createGraphics();
g.drawImage(image, 0, 0, null);
g.dispose();

// bufferImage->base64
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
ImageIO.write(bimg, "jpg", outputStream);
BASE64Encoder encoder = new BASE64Encoder();
String base64Img = encoder.encode(outputStream.toByteArray());

this.content = this.content.replace("@{" + key + "}",
"<img src= \"data:image/png;base64," + base64Img
+ "\" width=\"" + width + "\" height=\"" + height
+ "\"/>");
}

原文地址:https://www.cnblogs.com/yxw699/p/9298262.html

时间: 2024-10-12 08:06:26

zxing生成二维码转base64 img直接显示 Image对象转Base64码(java)的相关文章

ZXing生成二维码和带logo的二维码,模仿微信生成二维码效果

首先说下,QRCode是日本人开发的,ZXing是google开发,barcode4j也是老美开发的,barcode4j对一维条形码处理的很好,而且支持的格式很多,当然也可以对二维码进行处理,效果个人感觉没有前两种好;ZXing对j2me,j2se,还有Android等支持也比较好,如果你是搞Android的或以后准备走Android,建议还是用zxing的比较好,毕竟都一个母亲(goole)生的,QRCode就不用说了吧,虽说技术无国界,但是国人还是有点.... 好,言归正传,java用ZXi

zxing生成二维码设置边框颜色

真是研究了很久很久,满满的泪啊 zxing生成二维码,默认是可以增加空白边框的,但是并没有说设置边框颜色的属性. 其中增加空白边框的属性的一句话是: Map hints = new HashMap();hints.put(EncodeHintType.MARGIN, 1); 使用这句话设置边框,留出来的边框的颜色,就是二维码中主颜色的以外的那个颜色.通常主颜色都是黑色,背景色都是白色.如下二维码的边框的颜色,就是除了绿色以外的那个颜色. 所以并没有设置边框颜色的属性,那该怎么办?比如:要求使用P

(转)ZXing生成二维码和带logo的二维码,模仿微信生成二维码效果

场景:移动支付需要对二维码的生成与部署有所了解,掌握目前主流的二维码生成技术. 1 ZXing 生成二维码 首先说下,QRCode是日本人开发的,ZXing是google开发,barcode4j也是老美开发的,barcode4j对一维条形码处理的很好,而且支持的格式很多,当然也可以对二维码进行处理,效果个人感觉没有前两种好;ZXing对j2me,j2se,还有Android等支持也比较好,如果你是搞Android的或以后准备走Android,建议还是用zxing的比较好,毕竟都一个母亲(gool

使用QRCode和zXing生成二维码

首先将需要的jar加到工程中 QRCode.jar.zxingcore-2.2.jar.javase-2.2.jar(也可不加,增加一个MatrixToImageWriter类也可以) package com.demo; import com.google.zxing.common.BitMatrix; import javax.imageio.ImageIO; import java.io.File; import java.io.OutputStream; import java.io.IO

java学习-zxing生成二维码矩阵的简单例子

这个例子需要使用google的开源项目zxing的核心jar包 core-3.2.0.jar 可以百度搜索下载jar文件 也可使用maven添加依赖 <dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.2.0</version> </dependency> 最简单的生成二维码的方法,

使用Google zxing生成二维码

添加Maven依赖 <dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.2.1</version> </dependency> <dependency> <groupId>com.google.zxing</groupId> <artifact

Android:使用ZXing生成二维码(支持加入Logo图案)

ZXing是谷歌的一个开源库.能够用来生成二维码.扫描二维码.本文所介绍的是第一部分. 首先上效果图: ZXing相关各种文件官方下载地址:https://github.com/zxing/zxing/releases 或者在这里下载(仅仅有本项目所用的jar包,版本:3.2.0):链接: http://pan.baidu.com/s/1hq3s5EW password: mvg7 1.生成二维码的工具类 /** * 二维码生成工具类 */ public class QRCodeUtil { /

引用ZXing生成二维码

1.生成二维码 ZXing是一个开放源码的,用Java实现的多种格式的1D/2D条码图像处理库,它包含了联系到其他语言的端口. Zxing可以实现使用手机的内置的摄像头完成条形码的扫描及解码.本文引用zxing.dll,生成二维码. using com.google.zxing.qrcode; using com.google.zxing; using com.google.zxing.common; using ByteMatrix = com.google.zxing.common.Byte

Java通过Zxing生成二维码

今天,要完成一个批量生成二维码的工作,并将生成好的二维码与另外一张底图拼接,生成一张新图. Java生成二维码主要的sdk为,qrcode和zxing,二者差别不大,这里采用了zxing. 首先,直接使用其core.jar,然后实现MatrixToImageWriter类. 在使用zxing时,我们发现默认生成的白边太大,想进行修改,通过updateBit方法进行指定白边的宽度.在修改完其白边后,会影响默认设置的二维码大小,通过zoomInImage方法进行修复. 在合成两张图片时,通过Smal

Android -- 采用zxing生成二维码

首先在grandle里面添加zxing的库引用 compile 'com.google.zxing:core:3.1.0' 生成二维码静态类,返回一张二维码的Bitmap public class QrCodeUtil { // 生成QR图 public static Bitmap getQrCodeImage(int QR_WIDTH, int QR_HEIGHT, String text) throws WriterException { try { // 需要引入core包 QRCodeW