【发布时间】:2021-01-25 14:53:59
【问题描述】:
我有这段代码可以在 iOS 和 Android 应用程序上将 UIImage 转换为 base64EncodedString 并从 base64EncodedString 转换回 UIImage。
问题是当我将UIImage 转换为base64EncodedString 并发送到我的android 设备时它可以工作,
同样,当我从 android 设备接收到 IOS 的base64EncodedString 时,此功能imageFromBase64 将毫无问题地将其解码为UIImage。
但是当在 IOS 函数中将 UIImage 转换为 base64EncodedString 并尝试在 IOS 中使用此函数 imageFromBase64 对其进行解码时,它将返回 nil。
我有以下代码将图像转换为base64EncodedString
if let image = info[.originalImage] as? UIImage {
let thumb1 = image.resized(withPercentage: 0.3)
if let imageData = thumb1?.jpeg(.medium) {
let strBase64 = imageData.base64EncodedString(options: .lineLength64Characters)
tryEmitMessage(message: strBase64)
}
}
我的android示例将位图转换为base64EncodedString
public static byte[] bitmapToByte(Bitmap bitmap){
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
return stream.toByteArray();
}
byte[] bm = BitmapUtils.bitmapToByte(bitmap_image);
String strBase64 = Base64.encodeToString(bm, Base64.NO_WRAP);
波纹管函数用于将base64EncodedString解码为UIImage
func imageFromBase64 (base64:String) -> UIImage {
let imageData = Data.init(base64Encoded: base64, options: .init(rawValue: 0))
let image = UIImage(data: imageData!)
return image!
}
let message = "base64 string"
dataView.uiimage_image = imageFromBase64(base64: message)
我的 android 示例将base64EncodedString 转换为位图
byte[] b = Base64.decode("base64 string", Base64.DEFAULT);
Bitmap bmp = BitmapFactory.decodeByteArray(b,0,b.length);
请知道如何在 iOS swift 中编码和解码 base64 图像?
【问题讨论】:
-
编码:
options: .lineLength64Characters)和解码:options: .init(rawValue: 0)可能想用.ignoreUnknownCharacters而不是init(rawValue: 0)进行测试? -
@Larme 它与
ignoreUnknownCharacters合作
标签: ios swift tobase64string