📷

【SwiftUI】Data型とUIImage型を相互変換して、画像をデータとして保存したりデータから画像を取得して表示したりする方法

2023/04/02に公開

この記事では、以下についてまとめています。

  • データから画像を取得して表示する方法(Data型からUIImage型への変換)
  • 画像をデータとして保存する方法(UIImage型からData型へ変換)

データから画像を取得して表示する方法(Data型からUIImage型への変換)

import SwiftUI

struct DataToUIImageView: View {
    
    let imageData: Data?
    
    var body: some View {
        if let imageData, let uiImage = UIImage(data: imageData) {
            Image(uiImage: uiImage)
        }
    }
}

画像をデータとして保存する方法(UIImage型からData型へ変換)

UIImageをDataとして保存する方法は2種類あります。

  1. PNGで保存
  2. JPEGで保存

1. PNGで保存

import SwiftUI

struct UIImageToDataView: View {
    
    @AppStorage("imageData") var imageData: Data?
    let uiImage: UIImage?
    
    var body: some View {
        Button("保存") {
            guard let uiImage = uiImage else { return }
            imageData = uiImage.pngData()
        }
    }
}

2. JPEGで保存

import SwiftUI

struct UIImageToDataView: View {
    
    @AppStorage("imageData") var imageData: Data?
    let uiImage: UIImage?
    
    var body: some View {
        Button("保存") {
            guard let uiImage = uiImage else { return }
            imageData = uiImage.jpegData(compressionQuality: 0.5)
        }
    }
}

Discussion