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 に変換する方法をご説明しました。