В Android при декодировании растрового изображения из фотографии на телефоне данные EXIF в оригинале теряются.Я отправляю это растровое изображение на свой сервер через сокет и хочу повторно присоединить отсутствующие данные EXIF к отправляемым данным.
У меня есть код, который загружает растровый объект из MediaStore и сжимает его вготовится байтовый массив для отправки его через сокет:
Bitmap bitmap = ...
ByteArrayOutputStream stream = new ByteArrayOutputStream(bitmap);
bitmap.compress(CompressFormat.JPEG, 70, stream);
byte[] input = stream.toByteArray();
Я хочу использовать ExifInterface, чтобы получить метаданные EXIF в исходном jpeg на SD-карте и каким-то образом добавить это в исходящий байтовый массив.таким образом, чтобы я мог извлечь jpeg со всеми правильными EXIF на стороне сервера (надеюсь, без этого на сервере).До сих пор мне удавалось использовать ExifInterface для чтения всех данных EXIF:
String path = ... //bitmap file path
ExifInterface exif = new ExifInterface(path);
... = exif.getAttribute(...)
РЕДАКТИРОВАТЬ: оптимально, я хотел бы найти решение, которое не использует библиотеки.Если бы я мог просто получить индексы байтового массива исходного jpeg, которые содержат EXIF, и добавить / добавить эти байты в байтовый массив, созданный с помощью bitmap.compress(...)
, это было бы лучше всего.