Используя SDK Android я не вижу EXIF в своем JPEG

Я использую android.hardware.Camera класс для снимания и я нахожу, что никакие exif данные не хранятся в изображениях вообще. Если я использую приложение камеры на своем DROID, все exif данные сохраняются.

Я попытался установить вращение с Набором () и SetRotation (), чтобы видеть, могу ли я заставить некоторые exif данные обнаруживаться. Когда я просматриваю изображения на своем ноутбуке с exif читателем, он говорит мне, что изображение не имеет НИКАКИХ exif данных.

Я видел некоторые подобные сообщения, но я не нашел решение этого. Кто-либо видел эту проблему с другими телефонами?

Я использую SDK Android 2.0.1

7
задан Travis 24 February 2010 в 04:46
поделиться

3 ответа

Итак, после некоторого дополнительного исследования я обнаружил, что терял информацию EXIF, когда использовал следующий код для сохранения данных изображения на SD-карту.

BitmapFactory.Options options=new BitmapFactory.Options();
options.inSampleSize = 0;
Bitmap myImage = BitmapFactory.decodeByteArray(imageData, 0, imageData.length);
FullFileName = sdImageMainDirectory.toString() + "/DCIM/Camera/" + getDateTime() + ".jpg";
fileOutputStream = new FileOutputStream(FullFileName);
BufferedOutputStream bos = new BufferedOutputStream(fileOutputStream);
myImage.compress(CompressFormat.JPEG, quality, bos);
bos.flush();
bos.close();

Я изменил приведенный выше код, чтобы он выглядел просто так, и теперь все данные EXIF ​​с камеры присутствуют.

FileOutputStream file = new FileOutputStream(FileName);
file.write(imageData);
13
ответ дан 6 December 2019 в 12:50
поделиться

Спасибо, scntln!

Я действительно использую это в своем приложении Camera FX. Он хорошо работает для встраивания тегов EXIF ​​в JPEGS (не в файлы PNG).

Android SDK версии 2.x имеет собственный класс ExifInterface, который вы можете использовать вместо него. Но если вам нужна поддержка 1.6 или ниже, мой порт sanselandroid должен работать нормально.

Я все еще в процессе сокращения проекта sanselanandroid, чтобы он содержал только то, что абсолютно необходимо для простой записи тегов EXIF.

Кстати: Я заметил здесь, что неправильно написал «совместимый». Исправлено в моем блоге:)

2
ответ дан 6 December 2019 в 12:50
поделиться

Из сообщений вроде этого следует, что класс камеры не поддерживает данные EXIF, и приложение камеры использует свою собственную реализацию EXIF.

Одним из вариантов может быть просмотр источника, который упоминается в этой теме, и посмотреть, есть ли там что-то, что вы можете использовать.

Другим вариантом может быть проект sanselandandroid. Разработчик признает, что это не идеальный порт, но он является несколько активным участником android-центрических групп Google и продает свое собственное программное обеспечение для камеры Snap FX, которое включает приложение Camera FX, сохраняющее данные EXIF, согласно странице продукта.

Удачи.

Фотографии сохраняются с тегами EXIF, которые совместимы с большинством программных приложений для редактирования.

1
ответ дан 6 December 2019 в 12:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: