1. 程式人生 > >Java實現base64圖片轉換為base64字串。base64字串轉換圖片 之間的互相轉換,並儲存在本地。

Java實現base64圖片轉換為base64字串。base64字串轉換圖片 之間的互相轉換,並儲存在本地。

java實現Base64資料圖片和資料間的互相轉換

  1. 首先建立類。寫兩個方法:

    • 圖片轉base64字串方法:GetImageStr();
    • 字串轉為圖片方法:GenerateImage();
package jar;
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; public class Base64 { //圖片轉化成base64字串 public static String GetImageStr(String imageName) {//將圖片檔案轉化為位元組陣列字串,並對其進行Base64編碼處理 String imgFile = imageName;//待處理的圖片 InputStream in = null; byte[] data = null; //讀取圖片位元組陣列 try
{ in = new FileInputStream(imgFile); 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字串轉化成圖片 public static boolean GenerateImage(String imgStr,String imageName) { //對位元組陣列字串進行Base64解碼並生成圖片 if (imgStr == null) //影象資料為空 return false; BASE64Decoder decoder = new BASE64Decoder(); try { //Base64解碼 byte[] b = decoder.decodeBuffer(imgStr); for(int i=0;i<b.length;++i) { if(b[i]<0) {//調整異常資料 b[i]+=256; } } //生成jpeg圖片 String imgFilePath = imageName;//新生成的圖片 OutputStream out = new FileOutputStream(imgFilePath); out.write(b); out.flush(); out.close(); return true; } catch (Exception e) { return false; } } }

2.Main方法測試:

package jar;

public class Test {
     public static void main(String[] args)  
     {  

         //呼叫把圖片轉換為base64 資料方法  引數是需要轉base64圖片的路徑
         String strImg = Base64.GetImageStr("d://demo.jpg");
         //輸出base64 資料
         System.out.println("data:image/png;base64,"+strImg);  


         //呼叫把base64 資料轉換為圖片方法  第一個引數是字串資料,第二個是轉為圖片存放的路徑
         Base64.GenerateImage(strImg, "d://aaxx.jpg");  
     }
}

3.執行結果:

  • 圖片轉換為base64資料輸出結果:

這裡寫圖片描述

  • base64 資料轉換為圖片方法輸出結果:生成圖片

這裡寫圖片描述