我正在以 byte[] 格式上传 JPG 图像,但在转换为 byte[] 之前位图会去掉 EXIF。如何在不将其转换为位图的情况下上传原始 jpg?
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();
附注我不想使用任何第 3 方库。 ExifInterface 只能写入文件,不能写入流/字节数组。
最佳答案
以上代码在大多数情况下都不起作用。如果你想解码大尺寸图像,你会得到“内存不足错误”。使用 bitmpafactory 选项解码。
关于Android:上传JPG图片不丢失EXIF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8571056/