AsyncImage вращает портретные изображения
Я загружаю изображение JPG с удаленного сервера. Если я использую , портретные изображения, взятые из библиотеки телефона, поворачиваются на 90 градусов. Пейзажные изображения, взятые из фотобиблиотеки телефона, в порядке. Кроме того, портретные и пейзажные фотографии, сделанные с камеры телефона, в порядке. Глядя на изображение на компьютере с помощью URL-адреса, оно отображается в правильной ориентации. Если вместо использования для отображения изображения я загружаю его как данные и конвертирую в
UJIImage
, работает нормально. Так что это проблема только при использовании . Как я могу предотвратить поворот портретных изображений на 90 градусов при использовании ?
VStack {
AsyncImage(url: imageURL, transaction: Transaction(animation: .spring())) { phase in
switch phase {
case .empty:
Color.purple.opacity(0.1)
case .success(let image):
image
.resizable()
.aspectRatio(contentMode: .fill)
.transition(.scale)
case .failure(_):
Image(systemName: "exclamationmark.icloud")
.resizable()
.scaledToFit()
@unknown default:
Image(systemName: "exclamationmark.icloud")
}
}
.frame(width: 200, height: 250)
.cornerRadius(10)
}
Обновление: хотя это конкретно не отвечает на вопрос, я смог обойти эту проблему, выполнив преобразование изображения перед его отправкой на сервер. Я знаю, что при отправке в формате PNG возникают проблемы с ориентацией; однако я отправлял с помощью
jpgData
из . Тем не менее, я все равно применил это преобразование перед отправкой, и оно сработало при получении через . Было бы хорошо, если бы какой-то внутренний процесс обрабатывал его по-другому, и, таким образом, это дополнительное преобразование, которое в противном случае не требуется для
UIImage
или любая другая платформа, требуется в этом случае. Возможно, это просто ответ, но я оставлю его как есть, вопрос о поведении
AsyncImage
.