Swift で UIImage と Base64 文字列を変換する

ここでは、Swift で UIImage を Base64 文字列に変換する方法と、Base64 文字列を UIImage に変換する方法をご説明します。

Swift で UIImage を Base64 文字列に変換する方法

Swift で UIImage を Base64 文字列に変換するには、次のようにできます。

func convertImageToBase64(_ image: UIImage) -> String? {
    guard let imageData = image.jpegData(compressionQuality: 1.0) else { return nil }
    return imageData.base64EncodedString()
}

2 行目では、UIImage の jpegData() メソッドで jpeg の Data オブジェクトを生成して、失敗した時は nil を return しています。

compressionQuality は 0.0 から 1.0 で指定でき、0.0 が圧縮率が一番高く低画質、 1.0 が圧縮率が一番低く高画質になります。

UIImage の pngData() メソッドで png の Data を生成する方法もありますが、orientation の調整が必要になる可能性があります。

3 行目で、Data の base64EncodedString() メソッドを使って、Base64 の文字列を取得して return しています。


Swift で Base64 文字列 を UIImage に変換する方法

Swift で Base64 文字列 を UIImage に変換するには、次のようにできます。

func convertBase64ToImage(_ base64String: String) -> UIImage? {
    guard let imageData = Data(base64Encoded: base64String) else { return nil }
    return UIImage(data: imageData)
}

2 行目では、Data の init(base64Encoded:options:) イニシャライザーを使って、Base64 文字列から Data オブジェクトを生成して、失敗した時は nil を return しています。

3 行目で、UIImage の init(data:) イニシャライザーを使って、Data オブジェクトから UIImage オブジェクトを生成して return しています。


以上、Swift で UIImage を Base64 文字列に変換する方法と、Base64 文字列を UIImage に変換する方法をご説明しました。

© 2024 iOS 開発入門