2011-02-22 81 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

相关问题