我有这段代码可以在iOS和Android 应用程序上相互UIImage
转换。base64EncodedString
base64EncodedString
UIImage
问题是当我转换UIImage
并发base64EncodedString
送到我的 android 设备时它可以工作,当我base64EncodedString
从 android 设备接收到 IOS 时,此功能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 图像?