#android #xamarin #exif
#Android #xamarin #exif
Вопрос:
Я открываю ранее сохраненное изображение и записываю несколько атрибутов на основе данных, которые поступают чуть позже в процессе. Когда я сохраняю атрибуты, изображение перезаписывается (чего я и ожидал). Однако все данные изображения отсутствуют, и это только информация заголовка. Я что-то упустил?
ExifInterface exif = new ExifInterface(m_LastPictureName);
exif.SetAttribute(ExifInterface.TagArtist, "xxxx");
exif.SaveAttributes(); // Currently this is dropping ALL image data but saving only EXIF information - why???
Спасибо, что посмотрели.
Комментарии:
1. вы читали заметку здесь? developer.android.com/reference/android/media /…
2. Я ценю ответ, но после этого нет вызовов get ***. Как только вызывается SaveAttributes(), я вижу, что размер файла увеличивается с ~ 15 КБ до 35 байт.
3. не это, это: «Это дорого, потому что это включает копирование всех данных из одного файла в другой, удаление старого файла и переименование другого. Лучше всего использовать setAttribute »
4. О. Да, я видел это, поэтому я ожидал, что изображение будет «перезаписано». Я вижу, изменился ли размер, но имя осталось прежним. Мой вопрос в том, куда идут все остальные данные? Я делаю что-то не так, чтобы не сохранять что-то вручную? Мне кажется, что SaveAttributes() должен обрабатывать все необходимое.
5. Теперь у меня включен дополнительный вывод, и я вижу это: ExifInterface(20159): пропустить запись тега, поскольку номер тега не определен: 2 ExifInterface(20159): остановить чтение файла, поскольку неправильное смещение может привести к бесконечному циклу: 0
Ответ №1:
Мое исправление заключалось в установке Android.Поддержка.Media.ExifInterface вместо Android.Медиафайлы.ExifInterface.
Комментарии:
1. Вы можете отметить этот ответ позже, что поможет большему количеству людей с такой же проблемой :).