Android:上传JPG图片而不会丢失EXIF

时间:2011-12-20 05:07:31

标签: android exif

我在转换为byte []之前将JPG图像上传为byte [],但是将EXIF的位图条带上传。如何上传原始jpg而不将其转换为Bitmap?

File imagefile = new File(filepath + "DSC00021.jpg");
FileInputStream fis = new FileInputStream(imagefile);
Bitmap bi = BitmapFactory.decodeStream(fis); // EXIF info lost
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bi.compress(Bitmap.CompressFormat.JPG, 100, baos);
byte[] data = baos.toByteArray();

P.S。我不想使用任何第三方库。 ExifInterface只能写入文件而不能写入流/字节数组。

2 个答案:

答案 0 :(得分:0)

通过

将文件转换为位图
Bitmap bi = BitmapFactory.decode(filepath + "DSC00021.jpg");

您也可以指定选项,查看API documentation

或者,如果您想将元数据从一个文件交换到另一个文件,sanselan可能是最佳选择。这在操作图像时会非常有用,例如重新调整大小。

sample code将引导您朝着正确的方向前进。

答案 1 :(得分:0)

以上代码不适用于大多数情况。如果您想要解码大尺寸图像,您将收到“内存不足错误”。使用bitmpafactory选项解码。