2012-09-06 90 views
0

我們擁有包含Base64編碼圖像的日誌文件。我想處理這些日誌文件並提取base64編碼的「東西」,解碼並將其存儲爲「真實」圖像文件。將Base64解碼成JPG圖像

我一直在尋找如何做到這一點它似乎沒有產生從Hadoop的一個圖像文件中,除了使用序列* OUTPUTFORMAT類的方式。

我在短的問題是,是否有可能從以base64產生的jpg文件從Hadoop的編碼文件,而無需編寫自定義OUTPUTFORMAT?

親切的問候/約翰

回答

0

不知道你的意思「定製OUTPUTFORMAT」是什麼,但是這是我在我的web應用程序做(Hadoop的不以任何方式,雖然有關)。 HTH。

import sun.misc.BASE64Decoder; 
import java.io.FileOutputStream; 
import java.io.OutputStream; 
import java.io.PrintStream; 

public static void storeImage(String imageBase64, String path) { 
    imageBase64 = imageBase64.replace("\n", ""); 
    try { 
     new BASE64Decoder().decodeBufferToByteBuffer(imageBase64); 
     OutputStream out = new FileOutputStream(path); 
     PrintStream p = new PrintStream(out); 
     p.write(new BASE64Decoder().decodeBuffer(imageBase64)); 
     p.flush(); 
     p.close(); 

    } catch (Exception e) { 
     log.error("Error storing image.", e); 
     e.printStackTrace(); 
    } 
} 
+0

這將工作在一個普通的機器上,但不是在HDFS上,hadoop作爲專門的api:s。 – jrask