【问题标题】:Android: write PNG ByteArray to fileAndroid:将PNG ByteArray写入文件
【发布时间】:2014-09-17 22:01:59
【问题描述】:

我已将图像文件读入 ByteArray,但如何将其写回。我的意思是将 ByteArray 保存到文件系统中的图像文件中。首选 PNG 格式。

我从 PNG 文件到 ByteArray 的代码:

ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), mUri);
bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();

我知道有一些类似的问题,但我没有找到这个问题的确切解决方案。谢谢!!!

【问题讨论】:

  • 你可以使用位图图像吗?
  • 嗨@HuyTran,我可以使用位图图像,但限制是我得到的数据是压缩的字节数组,而不是原始位图。我可以将它转换回位图然后将位图写入文件,但它也不起作用。

标签: android bitmap png bytearray uri


【解决方案1】:

只需使用FileOutputStream 将您的字节数组写入。像这样:

File file = new File(getFilesDir()+"/file.png");
FileOutputStream fos = new FileOutputStream(file);

//write your byteArray here
fos.write(byteArray);
fos.flush();
fos.close();

【讨论】:

  • 嗨@joao2fast4u,谢谢你的回答。我试过你的代码并将file.png写入/Download文件夹,但我没有在Download文件夹中看到任何文件,也没有在LogCat中看到任何错误。我还仔细检查了三件事,1)我在清单文件中启用了“WRITE_EXTERNAL_STORAGE”的权限。 2) byteArray 不为空,大约 70k 字节。 3)文件目录应该是正确的,它是“/storage/emulated/0/Download/images.jpg”。这个文件写入问题还有其他可能的原因吗?
猜你喜欢
  • 2014-05-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-20
  • 2019-09-06
  • 1970-01-01
  • 2013-09-22
  • 1970-01-01
相关资源
最近更新 更多