2012-10-11 58 views
1

我有一個問題,我希望你能幫助我。問題是以下。我有一個具有http服務的相機,並且我正在使用http與相機進行通信。所以我發送http請求,並收到一個http響應,其中有一個二進制jpeg數據。但我不知道如何將這些數據轉換爲圖片。所以我的問題,我的主要問題是如何將該二進制數據轉換爲圖片。將二進制數據轉換爲圖像

這是我的代碼到目前爲止,我被困在獲取圖像。

URL url = new URL("http://10.10.1.154" + GETIMAGESCR()); 
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); 
String inputLine; 
// while ((inputLine = in.readLine()) != null){ 
// inputLine = in.readLine(); 
File file = new File("D:\\alphas\\proba.bin"); 
boolean postoi = file.createNewFile(); 
FileWriter fstream = new FileWriter("D:\\alphas\\proba.bin"); 
BufferedWriter out = new BufferedWriter(fstream); 
while ((inputLine = in.readLine()) != null){ 
out.write(in.readLine()); 
// out.close(); 
// System.out.println("File created successfully."); 
System.out.println(inputLine); 
} 
System.out.println("File created successfully."); 
out.close(); 
in.close() 

;

+0

我建議你使用某種JPEG庫。自己動手可以是一點工作。但是除非你指定某種編程語言,否則我不認爲我可以更具體。假設你正在尋找編程解決方案。 – tozka

+0

我正在使用java。我已經編寫了一段代碼,可以幫助我獲得banged jpeg數據,並且我將這些二進制數據保存在一個文件中,但我不知道如何使用java將該二進制數據轉換爲圖像。 –

+0

然後你應該添加java標籤。 Btw這些字節在技術上是原始形式的圖片/圖片(用jpeg壓縮)。有點。你到底想做什麼呢?將它們保存到文件? – tozka

回答

3

試試這個代碼:

URL url = new URL("http://10.10.1.154" + GETIMAGESCR()); 
InputStream is = new InputStream(url.openStream()); 
FileOutputStream out = new FileOutputStream("D:\\alphas\\proba.jpg"); 
byte[] data = new byte[1024]; 
int readBytes = 0; 
while ((readBytes = is.read(data)) > 0) { 
    out.write(data,0,readBytes); 
} 
out.flush(); 
out.close(); 
is.close() 
+0

非常感謝。但是我在java中很新,所以這是我第一次使用圖像,所以我希望你能幫助我多一點,舉個例子,如何解決這個問題,以及如何不使用reader,但是直接使用inputstream並將圖片保存爲jpeg。感謝前鋒。 –

+0

我的問題確切的是如何保存所有它,而不是使用讀者? –

+0

@BiljanaTanceska看看更新。 – jdevelop

1

您可以使用javax.imageio.ImageIO中

URL url = new URL("http://10.10.1.154" + GETIMAGESCR()); 
BufferedImage bi = ImageIO.read(url.openStream()) 
相關問題