图像到字节数组到字符串(反之亦然)
Posted
技术标签:
【中文标题】图像到字节数组到字符串(反之亦然)【英文标题】:Image to Byte Array to String (and vice versa) 【发布时间】:2011-07-02 07:49:51 【问题描述】:我想将图像转换为字节数组,然后将该字节数组转换为字符串。另外,我想将该字符串转换回字节数组,最后转换回图像。我该怎么做呢?任何帮助将不胜感激。
【问题讨论】:
到目前为止你尝试过什么?以下哪个步骤给您带来的麻烦最大? 如果您告诉我们原因,那么人们可能会考虑提出替代方案,因为也许这并不是问题的真正解决方案 - 不过您可以更详细一些。 这两个链接可以帮助你 - ***.com/questions/3211156/… 和 ***.com/questions/1580038/byte-array-to-image-file 另一个可以帮助的链接***.com/questions/469695/decode-base64-data-in-java @Oli Charlesworth 图像到字节数组,反之亦然 【参考方案1】:使用ImageIO.write(..)
并传递ByteArrayOutputStream
。然后调用stream.toByteArray()
- 你有字节。
使用 base64 或十六进制将字节数组表示为字符串 - commons-codec 具有 Base64
和 Hex
,它们允许双向转换。所以现在你有了字符串
参见 2 - 从字符串转换为字节数组。现在您又拥有了byte[]
。
使用ImageIO.read(..)
并传递new ByteArrayInputStream(bytes)
(对于第 2 点和第 3 点,您可以使用 new String(bytes, "utf-8")
和 string.getBytes("utf-8")
,但更喜欢 base64)
【讨论】:
programcreek.com/2009/02/… 喜欢这样吗?但我使用的是 jdk 6 但我找不到类 ImageIO !! @adham -javax.imageio.ImageIO
。使用 IDE 组织您的导入,它会立即找到它。
@adham - 是的,与链接中显示的完全一样。只是不要使用com.sun..internal
- 获取 apache commons-codec。
@adham - 你导入了吗.. ?以上是关于图像到字节数组到字符串(反之亦然)的主要内容,如果未能解决你的问题,请参考以下文章