将图像阵列保存到文件

时间:2018-04-24 12:31:44

标签: java android arrays image

我有一个看起来像

的数组
String image = obj.getString("data");

[255,216,255,224,0,16,74,70,73,70,0,1,1,0,0,1,0,1,0,0, ....] //这就是图片所包含的内容。

我尝试通过

将其转换为字节数组
byte[] bytes = image.getBytes();

然后我尝试用

保存它
File file = new File(Environment.getExternalStorageDirectory(), "DirImage/test.jpg");
FileOutputStream fos = new FileOutputStream(file);
fos.write(bytes);
fos.flush();
fos.close();

该文件被写入但我无法查看该图像。显示我是一个损坏的文件。

2 个答案:

答案 0 :(得分:1)

首先确定您需要的字节数。所以字符串中包含的十进制值的数量。然后声明一个像byte bytes[] = new byte[amount];这样的字节数组。您也可以先在字符串数组中拆分该字符串。 String parts [] = image.split(",");。 parts.length会告诉'amount'。

然后遍历各个部分并将部分字符串逐个转换为一个字节。

答案 1 :(得分:0)

之前我从未直接使用JPEG,但我认为您需要在文件开头指定一些信息,而不是直接输出原始颜色值,尝试使用Google搜索jpeg结构。