如何从 swift 中的 base64 字符串创建 GIF
how to create GIF from base64 string in swift
我正在获取带扩展名的 base64 字符串,我想将 base64 字符串转换为 GIF 并将其显示在 ImageView 中。我正在使用 iOSDevCenters+GIF.swift 文件。我从字符串中获取 NSData 但是当数据转换为图像时,它给出的 nil.Below 是我的代码:
let imageData = profileImageString.data(using: .utf8)
self.thumbnailMedia.image = UIImage.gifImageWithData(imageData!)
有人知道怎么做吗?
如果您从 base64 字符串开始,您应该将其解码为 base64 字符串而不是 UTF8
。
if let data = Data(base64Encoded: imageDataString) {
let image = UIImage(data: data)
}
此代码段仅获取编码图像字符串,解码为 Data
对象并根据数据创建图像。
如果您经常使用 base64 字符串,我强烈建议您扩展 String
结构功能。
extension String {
//: ### Base64 encoding a string
func base64Encoded() -> String? {
if let data = self.data(using: .utf8) {
return data.base64EncodedString()
}
return nil
}
//: ### Base64 decoding a string
func base64Decoded() -> String? {
if let data = Data(base64Encoded: self) {
return String(data: data, encoding: .utf8)
}
return nil
}
}
此片段摘自 Github,归功于 Stringer。
另一种方法是使用 Leo Dabus 创建的符合 Swift 约定的 :
extension String {
var data: Data { return Data(utf8) }
var base64Encoded: Data { return data.base64EncodedData() }
var base64Decoded: Data? { return Data(base64Encoded: self) }
}
extension Data {
var string: String? { return String(data: self, encoding: .utf8) }
}
我正在获取带扩展名的 base64 字符串,我想将 base64 字符串转换为 GIF 并将其显示在 ImageView 中。我正在使用 iOSDevCenters+GIF.swift 文件。我从字符串中获取 NSData 但是当数据转换为图像时,它给出的 nil.Below 是我的代码:
let imageData = profileImageString.data(using: .utf8)
self.thumbnailMedia.image = UIImage.gifImageWithData(imageData!)
有人知道怎么做吗?
如果您从 base64 字符串开始,您应该将其解码为 base64 字符串而不是 UTF8
。
if let data = Data(base64Encoded: imageDataString) {
let image = UIImage(data: data)
}
此代码段仅获取编码图像字符串,解码为 Data
对象并根据数据创建图像。
如果您经常使用 base64 字符串,我强烈建议您扩展 String
结构功能。
extension String {
//: ### Base64 encoding a string
func base64Encoded() -> String? {
if let data = self.data(using: .utf8) {
return data.base64EncodedString()
}
return nil
}
//: ### Base64 decoding a string
func base64Decoded() -> String? {
if let data = Data(base64Encoded: self) {
return String(data: data, encoding: .utf8)
}
return nil
}
}
此片段摘自 Github,归功于 Stringer。
另一种方法是使用 Leo Dabus 创建的符合 Swift 约定的
extension String {
var data: Data { return Data(utf8) }
var base64Encoded: Data { return data.base64EncodedData() }
var base64Decoded: Data? { return Data(base64Encoded: self) }
}
extension Data {
var string: String? { return String(data: self, encoding: .utf8) }
}