java - 将字节数组转换为 bufferedimage 结果为 null

标签 java arrays byte bufferedimage image-conversion

我正在尝试将长度为 128 的字节数组转换为存储在 BufferedImage 中的 32x32 位图。 我正在使用以下代码:

private BufferedImage fSP;

public Pattern( byte[] aBitData ) {
  if ( aBitData == null ) {
    throw new IllegalArgumentException( "Please provide a non-null byte array of length 128: " + aBitData );
  }
  else if ( aBitData.length != 128 ) {
    throw new IllegalArgumentException( "Please provide a non-null byte array of length 128: " + aBitData.length );
  }
  InputStream in = new ByteArrayInputStream( aBitData );
  try {
    fSP = ImageIO.read( in );
  } catch( IOException e ) {
    e.printStackTrace();
  }
}

但是每次 fSP 都因为某种原因被设置为 null。我不明白为什么会这样。谁能帮帮我?

最佳答案

来自JavaDoc :

返回一个 BufferedImage 作为使用从当前注册的那些中自动选择的 ImageReader 解码提供的 InputStream 的结果。 InputStream 包装在 ImageInputStream 中。如果没有已注册的 ImageReader 声称能够读取结果流,则返回 null

看起来字节数组的内容无法解码为已知的图像格式。

关于java - 将字节数组转换为 bufferedimage 结果为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7952295/

相关文章:

java - 我可以定义 Eclipse 清理规则的异常(exception)吗?

java - Hibernate-无法加载 Hibernate 配置 </mapping> 条目中声明的类

java - 将 ArrayList<ArrayList<Object>> 转换为 Object[][]

javascript - 从表格单元格中获取值并转换为数组

c# - 将字符串附加到字节数组以通过 TCP 传输

java - 在java中,当找到字符串匹配时如何打印文件中的整行

java - 如何强制主线程等待Looper结束工作

python - python中的多维数组到数据库

c# - 以字节为单位获取 C# 列表的大小

java - 从整数创建字节