java代码:

引用包:

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的更多相关文章

  1. Java生成BASE64编码

    1.所需jar包: BASE64Encoder.jar 2.在导包过程中,可能会出现工程不识别的情况.即:不能找到BASE64Encoder的jar包.此时,可以有两种方法解决这个问题: a.  只需 ...

  2. 减少HTTP请求之将图片转成二进制并生成Base64编码,可以在网页中通过url查看图片(大型网站优化技术)

    在网站开发过程中,对于页面的加载效率一般都想尽办法求快.那么,怎么让才能更快呢?减少页面请求 是一个优化页面加载速度很好的方法.上一篇博文我们讲解了 “利用将小图标合成一张背景图来减少HTTP请求”, ...

  3. java使用Base64编码和解码的图像文件

    1.编码和解码下面的代码示例看: import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import j ...

  4. java使用Base64编码

    import java.io.IOException;import java.io.UnsupportedEncodingException; import org.junit.Test; impor ...

  5. java处理图片base64编码的相互转换

    转载自http://www.cnblogs.com/libra0920/p/5754356.html 直接上代码 import sun.misc.BASE64Decoder; import sun.m ...

  6. Java利用Base64编码和解码图片文件

    1.编码与解码代码如下所示: import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import jav ...

  7. Java 处理图片 base64 编码的相互转换

    哈喽大家好我是刘德华. 今天项目优化了一下上传头像的功能.采用 imagecropper 插件完成裁剪图片的效果. 这个插件裁剪完的图片都是 base64 加密的字符串,上传头像也就涉及到了如何把加密 ...

  8. JAVA实现Base64编码的三种方式

    摘要: Javabase64编码的三种方式   有如下三种方式: 方式一:commons-codec.jar Java代码  1. String base64String="whuang12 ...

  9. java 自定义实现base64编码转换

    1.base64编码转换 所谓base64编码,即按照规则把字符转化为"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456 ...

随机推荐

  1. [MongoDB] 高可用架构方案

    一.缘由: 众所周知,Mongodb是在高速发展期,一些特性架构难免会发生变化.这里就总结下,我目前所知道的Mongodb 的高可用架构都有哪些.目前Mongodb版本3.2. 二.结构介绍: 1.R ...

  2. Notice: Trying to get property of non-object problem(PHP)解决办法 中间件只能跳转不能返任何数据

    这里实际是调用了一个zend的数据库访问的方法,使用了fetchAll方法,但由于数据库中没有该记录,所以返回的对象是null,所以我就判断对象是否为null: 复制代码代码如下: if($obj== ...

  3. Web Services 中XML、SOAP和WSDL的一些必要知识

    Web Services 是由xml来定义数据格式的,通过SOAP协议在各个系统平台中传输,那么接下来讨论下SOAP和WSDL的各自作用. SOAP和WSDL对Web Service.WCF进行深入了 ...

  4. [CF #290-C] Fox And Names (拓扑排序)

    题目链接:http://codeforces.com/contest/510/problem/C 题目大意:构造一个字母表,使得按照你的字母表能够满足输入的是按照字典序排下来. 递归建图:竖着切下来, ...

  5. 堆block和栈block的区分

    0. 问题所在 下面给出一段代码: - (NSArray*) getBlockArray { int num = 916; return [[NSArray alloc] initWithObject ...

  6. Ubuntu 安装 Xfce4 桌面

    sudo apt-get install xubuntu-desktop From: http://tieba.baidu.com/p/294762291

  7. JAVA 新手问题: Request 编码编译出错,Unhandled exception type UnsupportedEncodingException

    新手: 编写如下代码 private void Exec(HttpServletRequest Req,HttpServletResponse Response) //throws ServletEx ...

  8. 异常:Message 850 not found; No message file for product=network, facility=NL解决方案

    一.异常信息:   Message 850 not found; No message file for product=network, facility=NL    二.解决方案:     后来在 ...

  9. zk抢主

    package com.autonavi.tinfo.t1.traffic.pub.openlr.util; import java.util.Collections;import java.util ...

  10. js加载顺序

    在jsp页面中引js文件,页面按照js顺序加载,若js中存在相同的方法,应该会执行顺序在前的js中的方法.有时候遇到js方法不执行或者执行不对的情况,可能就是js的顺序问题,有时候会找很久找不到问题. ...