> 文档中心 > java如何实现base64和图片互相转换呢?

java如何实现base64和图片互相转换呢?

下文笔者讲述base64和图片互相转换的方法分享,如下所示:

实现思路:

       笔者通过一个utils类实现base64和图片两者的互相转换

例:

 

import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import Decoder.BASE64Decoder;import Decoder.BASE64Encoder;public class Base64Utils {    /**     * 图片转化成base64字符串     * @param imgPath     * @return     */    public static String GetImageStr(String imgPath) {// 将图片文件转化为字节数组字符串,并对其进行Base64编码处理 String imgFile = imgPath;// 待处理的图片 InputStream in = null; byte[] data = null; String encode = null; // 返回Base64编码过的字节数组字符串 // 对字节数组Base64编码 BASE64Encoder encoder = new BASE64Encoder(); try {     // 读取图片字节数组     in = new FileInputStream(imgFile);     data = new byte[in.available()];     in.read(data);     encode = encoder.encode(data); } catch (IOException e) {     e.printStackTrace(); } finally {     try {  in.close();     } catch (IOException e) {  // TODO Auto-generated catch block  e.printStackTrace();     } } return encode;    }    /**     * base64字符串转化成图片     * @param imgData     *     图片编码     * @param imgFilePath     *     存放到本地路径     * @return     * @throws IOException     */    @SuppressWarnings("finally")    public static boolean GenerateImage(String imgData, String imgFilePath) throws IOException { // 对字节数组字符串进行Base64解码并生成图片 if (imgData == null) // 图像数据为空     return false; BASE64Decoder decoder = new BASE64Decoder(); OutputStream out = null; try {     out = new FileOutputStream(imgFilePath);     // Base64解码     byte[] b = decoder.decodeBuffer(imgData);     for (int i = 0; i < b.length; ++i) {  if (b[i] < 0) {// 调整异常数据      b[i] += 256;  }     }     out.write(b); } catch (FileNotFoundException e) {     // TODO Auto-generated catch block     e.printStackTrace(); } catch (IOException e) {     // TODO Auto-generated catch block     e.printStackTrace(); } finally {     out.flush();     out.close();     return true; }    }}测试脚本public class Test {    public static void main(String[] args) throws IOException { String imageStr = Base64Utils.GetImageStr("D://下载/java265.jpg"); System.out.println(imageStr); Base64Utils.GenerateImage(imageStr, "D://test/java265.jpg");    }}