Используя Android SDK, я не вижу EXIF ​​в моих JPEG - PullRequest
7 голосов
/ 24 февраля 2010

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

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

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

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

Ответы [ 3 ]

13 голосов
/ 25 февраля 2010

Итак, после еще одного исследования я обнаружил, что терял информацию 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);
2 голосов
/ 25 февраля 2010

Спасибо, scntln!

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

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

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

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

1 голос
/ 24 февраля 2010

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

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

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

Удачи.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...