java生成base64编码的png
来源:互联网 发布:男士靴子品牌知乎 编辑:程序博客网 时间:2024/06/12 18:08
引用包:
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.Hashtable;
import javax.imageio.ImageIO;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.common.BitMatrix;
import sun.misc.BASE64Encoder;
方法:
/**
* 二维码生成器
*
* @param text 二维码内容
* @throws IOException
*/
@SuppressWarnings({ "unchecked", "rawtypes", "restriction" })
public static String generalQRCode(String url) {
Hashtable hints= new Hashtable();
hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
String binary = null;
try {
BitMatrix bitMatrix = new MultiFormatWriter().encode(
url, BarcodeFormat.QR_CODE, 200, 200, hints);
// 实现一: 输出图片到指定目录
// File outputFile = new File("d://1.jpg");
// MatrixToImageWriter.writeToFile(bitMatrix, "png", outputFile);
// 实现二:生成二维码图片并将图片转为二进制传递给前台
// 1、读取文件转换为字节数组
ByteArrayOutputStream out = new ByteArrayOutputStream();
BufferedImage image = toBufferedImage(bitMatrix);
////
ImageIO.write(image, "png", out);
byte[] bytes = out.toByteArray();
// 2、将字节数组转为二进制
BASE64Encoder encoder = new BASE64Encoder();
binary = encoder.encodeBuffer(bytes).trim();
} catch (Exception e) {
e.printStackTrace();
}
return binary;
}
// 其他调用方法
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) ? 0xFF000000 : 0xFFFFFFFF);
}
}
return image;
}
前台ajax方法:
$.ajax({
url: 方法url,
type:'post',
success : function(data) {
$('#img').attr('src', 'data:image/jpg;base64,' + data);
}
});
注意:img 的src前面需要拼接data:image/jpg;base64, 在加上后台生成的二进制才能正确解析二进制
- java生成base64编码的png
- java的base64编码
- Java生成随机验证码图片并进行Base64编码
- Java生成随机验证码图片并进行Base64编码
- Java 版本的 Base64 编码解码类
- Base64编码的Java语言实现
- Base64编码与解码的java实现
- Base64编码的原理与Java实现
- java base64编码的三种方式
- java中的base64编码
- Base64编码java实现
- java实现base64编码
- java base64编码源码
- java Base64 编码操作
- Java使用Base64编码
- java base64编码
- java实现base64编码
- java编码之BASE64
- 钩子机制(hook)
- vim 分屏
- vim 中乱码问题
- cocos2dx webview 打开非http:开头的网页失败
- spring mvc 配置文件信息记录
- java生成base64编码的png
- NetCDF 入门
- 数据科学速查表大全(机器学习和深度学习工程师用)
- geoServer 发布geoTiff格式的DEM数据
- github中cesium-terrain-builder和cesium-terrain-server使用
- 日常使用 Git 的 19 个建议
- three.js 根据png生成heightmap
- 桥接模式
- geoserver使用curl发布 imagemosaic