0

我已经为此苦苦挣扎了一段时间,由于我原本不是程序员,因此我将不胜感激。情况如下:

1.我在文件系统上有一个图像文件,并转换为 byteArrayOutputStream 和 ByteArray。(目前选择哪个并不重要,因此其中任何一个都适用于输入数据)

2. 我需要将图像表示为带有 HEX 代码和 0x 前缀的字符串,如下所示:

图像->字符串=' 0xFFD8FFE000104A46494600010200000100010000FFDB0 '

提前感谢任何试图提供帮助的人!任何示例代码或库将不胜感激!

4

4 回答 4

1

使用 Apache commons-codec

String s = "0x" + Hex.encodeHexString(bytes);
于 2012-07-06T10:50:57.927 回答
0

没有什么比现成的库更能将图像转换为十六进制的了。你必须检查这个主题:

Java:文件到十六进制? :)

如果您的十六进制已准备好,您可以使用@JB Nizet 的另一个答案中的方法将其转换为字符串,或者试试这个库:

String hex = HexBin.encode(bytes[]); // add "0x" of course.
于 2012-07-06T10:58:17.940 回答
0

这是对我有用的代码:

public static String getHexString(byte[] b) throws Exception {
  String result = "";
  for (int i=0; i < b.length; i++) {
    result +=
          Integer.toString( ( b[i] & 0xff ) + 0x100, 16).substring( 1 );
  }
  return result;
}

无论如何感谢您的帮助!

于 2012-07-09T13:13:14.793 回答
0

我认为您不应该使用 HexString 将 Image 存储为字符串,因为它会获得

数据很多。

您应该使用 base-64 编码而不是十六进制编码来保存。

我建议你使用Base64apache 的 utilcommons-codec

于 2013-11-15T05:38:14.837 回答