Сейчас я ориентируюсь на .NET 10. Есть дополнительные параметры, которые можно передать в CapturePhotoAsync, среди них MediaPickerOptions.RotateImage. Если установлено значение true, моя интерпретация документации заключается в том, что она будет давать правильно ориентированные изображения, и мне больше не нужно об этом беспокоиться. Неправда. Они неправильно ориентированы. Более того, предоставленное изображение представляет собой PNG без данных EXIF. Если установлено значение false, я все равно получаю PNG, но в правильном направлении. Это кажется пугающе случайным и не документированным.
Могу ли я предположить, что если RotateImage имеет значение false, я всегда буду получать правильно ориентированное изображение? Если нет, то, похоже, мое приложение сделало шаг назад, обновив .NET.
Я называю это так
Код: Выделить всё
FileResult? photo = await MediaPicker.Default.CapturePhotoAsync(BuildPhotoOptions());
Код: Выделить всё
private static MediaPickerOptions BuildPhotoOptions(string ? title = null) {
var max = Constants.MaxPhotoHeightOrWidthPixels;
return new MediaPickerOptions {
Title = title,
SelectionLimit = 1,
// can't rely on this
// MaximumWidth = max,
// MaximumHeight = max,
CompressionQuality = 95,
RotateImage = false,
PreserveMetaData = true
};
}
Подробнее здесь: https://stackoverflow.com/questions/798 ... peg-in-net
Мобильная версия