首页 > 解决方案 > 位图无法正确解码代表文件数据的 byteArray

问题描述

我有以下代码:

File file = new File(filepath);
byte[] fileData = new byte[(int) file.length()];
DataInputStream dis = null;
try {
    dis = new DataInputStream(new FileInputStream(file));
    dis.readFully(fileData);
    dis.close();
    } catch (FileNotFoundException e) {
       e.printStackTrace();
    } catch (IOException e) {
       e.printStackTrace();
    }

Bitmap bm = BitmapFactory.decodeByteArray(fileData,0, fileData.length);

我成功地用字节填充 fileData,虽然老实说我认为字节太少无法表示文件路径引用的 jpg 文件的内容。但即使我将它设置为具有更多字节,它们仍保留为 0,我猜它包含正确的字节。

但是一旦执行了最后一条指令, bm 就会保留为空。

我该怎么做才能从该数据中正确获取位图?

PD:我知道这样做会更合乎逻辑:

Bitmap bm = BitmapFactory.decodeFile(filePath);

但是,由于某种原因,它也返回 null,所以我采用这种不太直接的方法来尝试解决问题。

经过一番调查,我检查了这个问题是只有几个字节是被检索的,这样一来,bitmpa 最终为空是没有道理的,我该怎么做才能得到所有字节?

标签: javaandroidarraysbitmap

解决方案


推荐阅读