Я использую android.hardware.Camera
класс для снимания и я нахожу, что никакие exif данные не хранятся в изображениях вообще. Если я использую приложение камеры на своем DROID, все exif данные сохраняются.
Я попытался установить вращение с Набором () и SetRotation (), чтобы видеть, могу ли я заставить некоторые exif данные обнаруживаться. Когда я просматриваю изображения на своем ноутбуке с exif читателем, он говорит мне, что изображение не имеет НИКАКИХ exif данных.
Я видел некоторые подобные сообщения, но я не нашел решение этого. Кто-либо видел эту проблему с другими телефонами?
Я использую SDK Android 2.0.1
Итак, после некоторого дополнительного исследования я обнаружил, что терял информацию 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);
Спасибо, scntln!
Я действительно использую это в своем приложении Camera FX. Он хорошо работает для встраивания тегов EXIF в JPEGS (не в файлы PNG).
Android SDK версии 2.x имеет собственный класс ExifInterface, который вы можете использовать вместо него. Но если вам нужна поддержка 1.6 или ниже, мой порт sanselandroid должен работать нормально.
Я все еще в процессе сокращения проекта sanselanandroid, чтобы он содержал только то, что абсолютно необходимо для простой записи тегов EXIF.
Кстати: Я заметил здесь, что неправильно написал «совместимый». Исправлено в моем блоге:)
Из сообщений вроде этого следует, что класс камеры не поддерживает данные EXIF, и приложение камеры использует свою собственную реализацию EXIF.
Одним из вариантов может быть просмотр источника, который упоминается в этой теме, и посмотреть, есть ли там что-то, что вы можете использовать.
Другим вариантом может быть проект sanselandandroid. Разработчик признает, что это не идеальный порт, но он является несколько активным участником android-центрических групп Google и продает свое собственное программное обеспечение для камеры Snap FX, которое включает приложение Camera FX, сохраняющее данные EXIF, согласно странице продукта.
Удачи.
Фотографии сохраняются с тегами EXIF, которые совместимы с большинством программных приложений для редактирования.