在UIImage和Base64字符串之间进行转换

271

有人知道如何将 UIImage 转换为 Base64 字符串,然后再反转回来吗?

我有以下代码;编码前的原始图像很好,但编码和解码后我只得到了一张空白图像。

NSData *imageData = UIImagePNGRepresentation(viewImage);

NSString *b64EncStr = [self encode: imageData];

NSString *base64String = [self encodeBase64:imageData];

试试这个:https://github.com/l4u/NSData-Base64/ - user529758
有人能回答这个问题吗:http://stackoverflow.com/questions/39657434/issue-in-coverting-zlib-compressed-base-64-string-to-uiimage/39659390?noredirect=1#comment66621861_39659390 - user3011809
24个回答

1

Swift 5,Xcode 10。

 let imageData = UIImage(named:"imagename").pngData()?.base64EncodedString(options: .lineLength64Characters)

print(imageData)


1
//convert Image to Base64 (Encoding)

let strBase64 = imageData.base64EncodedString(options: .lineLength64Characters)

print(strBase64)

// convert Base64 to Image (Decoding)

let dataDecoded:NSData = NSData(base64EncodedString: strBase64, options: NSDataBase64DecodingOptions(rawValue: 0))!

let decodedimage:UIImage = UIImage(data: dataDecoded)!

print(decodedimage)

yourImageView.image = decodedimage

0

对于 iOS 7+,Objective-C,以下是如何从图像 URL 开始进行转换的方法:

NSURL *url = [NSURL URLWithString:self.groove.thumbnailURL];

UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:url]];

NSString *base64String = [UIImagePNGRepresentation(image)
base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];

0

Swift 3.0 和 Xcode 8.0

let imageData = UIImageJPEGRepresentation(imageView.image!, 1)

    let base64String = (imageData! as Data).base64EncodedString(options: NSData.Base64EncodingOptions(rawValue: 0))
    print(base64String)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接