在項目中,需要將BASE64編碼的圖片轉換為圖片檔案顯示在WEB項目中,經GOOGLE一番搜尋,自己寫了個互換的工具類
package com.base.util;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import sun.misc.BASE64Decoder;import sun.misc.BASE64Encoder;/** * 圖片與BASE64編碼互轉工具類 * @author wangwei * */public class ImageBase64Util { public static void main(String[] args) { // 測試從Base64編碼轉換為圖片檔案// String strImg = "xxxxx"; \\圖片BASE64字串// GenerateImage(strImg, "D:\\wangyc.jpg"); // 測試從圖片檔案轉換為Base64編碼 //System.out.println(GetImageStr("d:\\0.jpg")); GenerateImage(GetImageStr("d:\\0.jpg"), "D:\\000.jpg"); } /** * 將圖片檔案轉化為位元組數組字串,並對其進行Base64編碼處理 * @param imgFilePath 圖片路徑 * @return String */ public static String GetImageStr(String imgFilePath) { byte[] data = null; // 讀取圖片位元組數組 try { InputStream in = new FileInputStream(imgFilePath); data = new byte[in.available()]; in.read(data); in.close(); } catch (IOException e) { e.printStackTrace(); } // 對位元組數組Base64編碼 BASE64Encoder encoder = new BASE64Encoder(); return encoder.encode(data);// 返回Base64編碼過的位元組數組字串 } /** * 對位元組數組字串進行Base64解碼並產生圖片 * @param imgStr Base64字串 * @param imgFilePath 產生圖片儲存路徑 * @return boolean */ public static boolean GenerateImage(String imgStr, String imgFilePath) { if (imgStr == null) // 映像資料為空白 return false; BASE64Decoder decoder = new BASE64Decoder(); try { // Base64解碼 byte[] bytes = decoder.decodeBuffer(imgStr); for (int i = 0; i < bytes.length; ++i) { if (bytes[i] < 0) {// 調整異常資料 bytes[i] += 256; } } // 產生jpeg圖片 OutputStream out = new FileOutputStream(imgFilePath); out.write(bytes); out.flush(); out.close(); return true; } catch (Exception e) { return false; } } /** * 對位元組數組字串進行Base64解碼並產生圖片 * @param imgStr 圖片字串 * @return byte[] */ public static byte[] getStrToBytes(String imgStr) { if (imgStr == null) // 映像資料為空白 return null; BASE64Decoder decoder = new BASE64Decoder(); try { // Base64解碼 byte[] bytes = decoder.decodeBuffer(imgStr); for (int i = 0; i < bytes.length; ++i) { if (bytes[i] < 0) {// 調整異常資料 bytes[i] += 256; } } // 產生jpeg圖片 return bytes; } catch (Exception e) { return null; } }}