UIImage和base 64字符串之間的轉(zhuǎn)換是否有人知道如何將UIImage到一個(gè)基本64字符串,然后反轉(zhuǎn)它?我有下面的代碼;編碼前的原始圖像很好,但只有在編碼和解碼之后才能得到空白的圖像。NSData *imageData = UIImagePNGRepresentation(viewImage);NSString *b64EncStr = [self encode: imageData];
NSString *base64String = [self encodeBase64:imageData];
3 回答

縹緲止盈
TA貢獻(xiàn)2041條經(jīng)驗(yàn) 獲得超4個(gè)贊
首先,我們需要圖像的NSData
//Use image name from bundle to create NSDatalet image : UIImage = UIImage(named:"imageNameHere")!//Now use image to create into NSData formatlet imageData:NSData = UIImagePNGRepresentation(image)!//OR next possibility//Use image's path to create NSDatalet url:NSURL = NSURL(string : "urlHere")!//Now use image to create into NSData formatlet imageData:NSData = NSData.init(contentsOfURL: url)!
SWIFT 2.0>編碼
let strBase64:String = imageData.base64EncodedStringWithOptions(.Encoding64CharacterLineLength)
SWIFT 2.0>解碼
let dataDecoded:NSData = NSData(base64EncodedString: strBase64, options: NSDataBase64DecodingOptions.IgnoreUnknownCharacters)!
SWIFT 3.0>解碼
let dataDecoded : Data = Data(base64Encoded: strBase64, options: .ignoreUnknownCharacters)!
編碼 :
let strBase64 = imageData.base64EncodedString(options: .lineLength64Characters)print(strBase64)
解碼 :
let dataDecoded:NSData = NSData(base64EncodedString: strBase64, options: NSDataBase64DecodingOptions(rawValue: 0))!let decodedimage:UIImage = UIImage(data: dataDecoded)!print(decodedimage)yourImageView.image = decodedimage
SWIFT 3.0
let dataDecoded : Data = Data(base64Encoded: strBase64, options: .ignoreUnknownCharacters)!let decodedimage = UIImage(data: dataDecoded) yourImageView.image = decodedimage
目標(biāo)-C
iOS 7>版本
NSData's
base64EncodedStringWithOptions
編碼 :
- (NSString *)encodeToBase64String:(UIImage *)image { return [UIImagePNGRepresentation(image) base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];}
解碼 :
- (UIImage *)decodeBase64ToImage:(NSString *)strEncodeData { NSData *data = [[NSData alloc]initWithBase64EncodedString:strEncodeData options:NSDataBase64DecodingIgnoreUnknownCharacters]; return [UIImage imageWithData:data];}
IOS 6.1和<版本
第一選擇encode
decode
project
.
編碼 :
NSData* data = UIImageJPEGRepresentation(yourImage, 1.0f); NSString *strEncoded = [Base64 encode:data];
解碼 :
NSData* data = [Base64 decode:strEncoded ];; image.image = [UIImage imageWithData:data];
另一種選擇encoding
decoding

弒天下
TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超8個(gè)贊
SWIFT 4.2擴(kuò)展方法
extension UIImage { func toBase64() -> String? { guard let imageData = self.pngData() else { return nil } return imageData.base64EncodedString(options: Data.Base64EncodingOptions.lineLength64Characters) }}
Xcode 9.1和SWIFT 4.0
// // Convert UIImage to a base64 representation //class func convertImageToBase64(image: UIImage) -> String { let imageData = UIImagePNGRepresentation(image)! return imageData.base64EncodedString(options: Data.Base64EncodingOptions.lineLength64Characters)}// // Convert a base64 representation to a UIImage //class func convertBase64ToImage(imageString: String) -> UIImage { let imageData = Data(base64Encoded: imageString, options: Data.Base64DecodingOptions.ignoreUnknownCharacters)! return UIImage(data: imageData)!}
- 3 回答
- 0 關(guān)注
- 951 瀏覽
添加回答
舉報(bào)
0/150
提交
取消