Как сохранить данные Exif после сжатия растрового изображения в Android

Сделав снимок с помощью камеры, я сжимаю растровое изображение, чтобы уменьшить размер файла. Проблема в том, что после сжатия теряются все данные EXIF. У меня нет проблем с получением исходных данных EXIF, однако, как мне добавить эти данные EXIFF после сжатия в массив байтов?

(Я предполагаю взять массив байтов и создать его растровое изображение, затем добавить старые данные EXIF ​​и затем снова добавить в массив байтов, но это мобильное приложение, и я делаю много изображений, поэтому я не хочу тратить память)

Вот код, в котором я сжимаю растровое изображение и сохраняю его в выходной поток байтового массива:

myBitmapImage.compress(Bitmap.CompressFormat.JPEG, 75, outputstream);//Losing EXIF data here
byte[] ba = outputstream.toByteArray(); // How to add EXIF data here ?

person Janpan    schedule 20.05.2014    source источник


Ответы (1)


Я нашел способ, которым мы можем сохранить данные Exif после сжатия растрового изображения, поэтому размещаю его здесь, если кто-нибудь наткнется на этот пост.

Вы можете использовать импорт Apache для tiff и ExifTagConstants, чтобы добавить данные EXIF ​​обратно в изображение байтового массива:
org.apache.sanselan.formats.tiff.constants.TagInfo org.apache.sanselan.formats.tiff.constants.ExifTagConstants

person lifemoveson    schedule 11.02.2019