SwiftUI 某些图像在另存为 pngdata 后旋转 180 度

问题描述

我正在尝试创建一个 SwiftUI 应用程序,该应用程序的其中一个功能是将图像作为其 pngdata 保存到类中。

class Coupon: Codable,Equatable,Identifiable {
    var id = UUID()
    var data: [String]
    var date: Date
    var image: Data
    init(name: String,date: String,dateobject: Date,image: UIImage,description: String) {
        self.data = [name,date,description]
        self.date = dateobject
        self.image = image.pngData()!
}
    static func == (one: Coupon,two: Coupon) -> Bool {
        return one.data == two.data && one.date == two.date
}
}

但是每当我显示图像时,就像这样:

Image(uiImage: UIImage(data: coupon.image))

某些图像会颠倒旋转。

我查看了许多不同的答案,但似乎没有一个解决我的问题。

为什么会发生这种情况,我该如何解决

解决方法

我通过挖掘解决了我自己的问题。问题是我将 UIImage 保存为 pngdata,这使某些图像获得了更简单的新方向。只需将其保存为 jpegdata,执行以下操作:

self.image = image.jpegData(compressionQuality: 1) ?? Data()

我能够保存方向,节省一些空间(因为 JPEG 更小),并保存我的应用程序!