解码base64加密的图片并打印到前台

经过base64加密的图片对象是一串字符串,我们解码后可通过流将其打印出来:

utils类:

package com.aebiz.app.web.modules.controllers.open.api.nciccClient.client;

import java.awt.Image;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import javax.imageio.ImageIO;
import sun.misc.BASE64Decoder;
public class Util {
    /**
     * @param p_Str Base64编码的字符窜
     * @return byte[]类型的照片信息
     * @throws IOException
     */
    public static byte[] fromBase64(String p_Str) throws IOException
    {
        byte[] byteBuffer = new BASE64Decoder().decodeBuffer(p_Str);
        return byteBuffer;
    }
    /**
     * @param bytes byte[]类型的照片信息
     * @return Java Image对象。可以直接在java程序中绘制到UI界面
     */
    public static Image getImage(byte[] bytes) {
        Image img = null;
        try {
            InputStream isPhoto = new ByteArrayInputStream(bytes);
            img = ImageIO.read(isPhoto);
        } catch (IOException e) {
// TODO Auto-generated catch block
            e.printStackTrace();
        }
        return img;
    }
}

调用demo:

 /**
     * 测试用····业务场景不需要
     * @param req
     * @param response
     * @return
     */
    @RequestMapping(value = "/getTestResult")
    @ResponseBody
    public String getTestResult(HttpServletRequest req, HttpServletResponse response) {

        //将Image 传送到前台进行展示 START
        response.setContentType("image/jpeg");// 设置相应类型,告诉浏览器输出的内容为图片
        response.setHeader("Pragma", "No-cache");// 设置响应头信息,告诉浏览器不要缓存此内容
        response.setHeader("Cache-Control", "no-cache");
        response.setHeader("Set-Cookie", "name=value; HttpOnly");//设置HttpOnly属性,防止Xss攻击
        response.setDateHeader("Expire", 0);

        //Base64加密后的图片字符串
        String img="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";
        Util base64=new Util();

        byte[]re= new byte[0];
        try {
            //解码
            re = base64.fromBase64(img);
        } catch (IOException e) {
            e.printStackTrace();
        }

        BufferedImage image=(BufferedImage) base64.getImage(re);

        try {
//            将内存中的图片通过流动形式输出到客户端
            ImageIO.write(image, "JPEG", response.getOutputStream());
            if(response.getOutputStream()!= null){
                response.getOutputStream().close();
            }
        } catch (Exception e) {
          e.printStackTrace();
        }
        //将Image 传送到前台进行展示 END
        return null;
    }
原文地址:https://www.cnblogs.com/hedongfei/p/7593140.html