2011-02-22 96 views
5

我想將圖像轉換爲字節數組,然後將該字節數組轉換爲字符串。此外,我還想將該字符串轉換回字節數組,最後返回到圖像。我該如何去完成這件事?任何幫助將不勝感激。圖像到字節數組到字符串(反之亦然)

+4

你嘗試過這麼遠嗎?以下哪些步驟會造成您最麻煩的? – 2011-02-22 21:15:13

+0

如果你告訴我們爲什麼那麼人們可能會考慮提出替代方案,因爲這可能不是解決問題的辦法 - 不過你可能會更加細緻。 – 2011-02-22 21:16:31

+0

這兩個鏈接可以幫助你 - http://stackoverflow.com/questions/3211156/how-to-convert-image-to-byte-array-in-java和http://stackoverflow.com/questions/1580038/ byte-array-to-image-file – CoolBeans 2011-02-22 21:17:16

回答

6
  1. 使用ImageIO.write(..)並通過ByteArrayOutputStream。然後致電stream.toByteArray() - 你有字節。

  2. 使用base64或hex來表示字符串數組作爲字符串 - commons-codecBase64Hex它們允許在兩個方向上進行轉換。所以現在你有字符串

  3. 請參閱2-將字符串轉換爲字節數組。現在你又有了byte[]

  4. 使用ImageIO.read(..),並通過一個new ByteArrayInputStream(bytes)

(爲點2和3,你可以使用new String(bytes, "utf-8")string.getBytes("utf-8"),但更喜歡的base64)

+0

http://www.programcreek.com/2009/02/java-convert-image-to-byte-array-convert-byte-array-to-image/是這樣的嗎?但我使用JDK 6,但我找不到類ImageIO! – Adham 2011-02-22 21:23:06

+0

@adham - 'javax.imageio.ImageIO'。使用IDE來組織您的導入,它會立即找到它。 – Bozho 2011-02-22 21:24:40

+0

@adham - 是的,完全如鏈接所示。只是不要使用'com.sun..internal' - 獲取apache commons-codec。 – Bozho 2011-02-22 21:25:45

相關問題