2017-07-24 34 views
0

我想寫入數據輸出流的緩衝圖像。從緩衝圖像到數據輸出流

無論我嘗試過什麼都行不通。

例如:

BufferedImage image = new BufferedImage(width, height,BufferedImage.TYPE_INT_RGB); 

final ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
final DataOutputStream dos = new DataOutputStream(baos); 

     try { 
      dos.writeByte((DataBufferByte) image.getData().getDataBuffer()); 
     }finally { 
      dos.close(); 
     } 

     baos.writeTo(os); 

我不能讓行dos.writeByte((DataBufferByte) image.getData().getDataBuffer());工作。

現在,它示出了:the method writeByte(int) in the type DataOutputStream is not applicable for the arguments (DataBufferByte)

回答

0

方法writeByte採取單一int,而不是一個DataBufferByte作爲參數:

寫出一個字節基礎輸出流作爲1字節的值。如果沒有拋出異常,則寫入的計數器加1.

因此,您的代碼無法編譯。

請注意,也取一個int它不能接受超過1個字節大小的值。

您需要提取DataBufferByte的字節數組,您可以使用方法write(byte\[\] b, int off, int len)來編寫它們。

+0

那麼,沒有辦法將緩衝圖像寫入數據輸出流? – George

+0

檢查更新後的答案。 –

+0

能否請你舉個例子來說明我的情況?我有點迷路了!謝謝! – George