图像转字节数组再转字符串(反之亦然)

6

我希望将一张图片转换成字节数组,然后再将该字节数组转换为字符串。同时,我还想把这个字符串再转回字节数组,最后再转回图片。请问我该如何实现这个功能?非常感谢您的帮助。


4
你目前尝试了什么?这些步骤中哪一步给你带来了最多的困扰? - Oliver Charlesworth
如果您告诉我们原因,人们可能会考虑建议替代方案,因为这可能并不是解决问题的真正方法 - 当然,您可以更详细地说明。 - Grant Thomas
这两个链接可以帮助你 - https://dev59.com/rHA75IYBdhLWcg3wlqOh 和 https://dev59.com/jnI-5IYBdhLWcg3w-92b - CoolBeans
另一个可以帮助的链接:https://dev59.com/DXRB5IYBdhLWcg3w6bYE - The Scrum Meister
@ Oli Charlesworth 图像转字节数组和反之。 - Adham
你为什么想把字节数组转换成字符串?图像数据不是字符数据,直接作为字符串使用效果不佳,但使用一些编码如Base64可以解决问题。 - ColinD
1个回答

7
  1. 使用ImageIO.write(..)并传递一个ByteArrayOutputStream。然后调用stream.toByteArray()-您就有了字节。

  2. 使用base64或十六进制表示字节数组作为字符串 - commons-codecBase64Hex,可以在两个方向上进行转换。现在你有了这个字符串

  3. 参见2-从字符串转换为字节数组。现在你又有了byte[]

  4. 使用ImageIO.read(..)并传递一个new ByteArrayInputStream(bytes)

(对于第2和第3点,您可以使用new String(bytes, "utf-8")string.getBytes("utf-8"),但最好使用base64)


类似这样的内容吗?但是我正在使用JDK 6,但我找不到ImageIO类!! - Adham
@adham - javax.imageio.ImageIO。使用IDE来组织你的导入,它会立即找到它。 - Bozho
@adham - 是的,就像链接中所示的那样。只是不要使用 com.sun..internal - 获取 Apache Commons Codec。 - Bozho
@adham - 你导入了吗? - Bozho

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接