如何从字节创建UIImage?基于图片字节码字符串的技术问询
把Base64图片字符串转成UIImage的方法
没问题,我来帮你搞定这个!你手里的这段字符串是Base64编码的图片数据(从开头的/9j/能看出来是JPEG格式),要转成UIImage其实很简单,分两步走就行:
- 第一步:把Base64字符串转换成
Data类型 - 第二步:用
UIImage(data:)方法把Data转成UIImage
这里给你完整的Swift代码示例,还加了错误判断,避免崩溃:
// 替换成你的Base64图片字符串 let base64ImageString = "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCABAAEADASIA AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3 ODk6Q0RFRkdISUpTVF..." // 1. 将Base64字符串转为Data,忽略未知字符适配可能的格式问题 guard let imageData = Data(base64Encoded: base64ImageString, options: .ignoreUnknownCharacters) else { print("出错啦:Base64编码无效,没法转成Data") return } // 2. 将Data转为UIImage guard let targetImage = UIImage(data: imageData) else { print("出错啦:这段Data不是有效的图片数据") return } // 到这里就拿到可用的UIImage了,比如给UIImageView赋值 // yourImageView.image = targetImage
小提示
如果你的Base64字符串前面带了类似data:image/jpeg;base64,的前缀,记得先把前缀去掉再处理,比如这样:
let fullBase64String = "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD..." guard let base64Part = fullBase64String.components(separatedBy: ",").last else { print("前缀处理失败") return } // 然后用base64Part去转Data
内容的提问来源于stack exchange,提问作者Augusto
相关产品推荐
相关产品推荐

