Android:上传JPG图片不丢失EXIF

标签 android exif

我正在以 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/

相关文章:

c# - 将图像数据转换为流

java.io.FileNotFoundException : This file can not be opened as a file descriptor; it is probably compressed

Android viewModel savedStateHandle

android - Google Maps V2 在 android 2.2 上显示黑屏

Android-如何跳过第一个 Activity

python - Windows 7 中托管的 GExiv2.py (Python)

android - 为什么使用AndroidX时嵌套的PreferenceScreen打不开?

ios - 从 PHAsset 中提取元数据返回意外的 nil 值

php - 如何在 Linux 共享主机上启用 php_mbstring 和 php_exif 扩展

javascript - 使用 EXIF 和 BinaryFile 出错