有人知道如何将UIImage转换为base64字符串,然后将其反转吗?

我有下面的代码,编码前的原始图像是好的,但是我只有在编码和解码之后才得到一个空白图像.

NSData *imageData = UIImagePNGRepresentation(viewImage);

NSString *b64EncStr = [self encode: imageData];

NSString *base64String = [self encodeBase64:imageData];

推荐答案

Swift

First we need to have image's NSData

//Use image name from bundle to create NSData
let image : UIImage = UIImage(named:"imageNameHere")!
//Now use image to create into NSData format
let imageData:NSData = UIImagePNGRepresentation(image)!

//OR next possibility

//Use image's path to create NSData
let url:NSURL = NSURL(string : "urlHere")!
//Now use image to create into NSData format
let imageData:NSData = NSData.init(contentsOfURL: url)!

Swift 2.0 > Encoding

let strBase64:String = imageData.base64EncodedStringWithOptions(.Encoding64CharacterLineLength)

Swift 2.0 > Decoding

let dataDecoded:NSData = NSData(base64EncodedString: strBase64, options: NSDataBase64DecodingOptions.IgnoreUnknownCharacters)!

Swift 3.0 > Decoding

let dataDecoded : Data = Data(base64Encoded: strBase64, options: .ignoreUnknownCharacters)!

Encoding:

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

Decoding:

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

目标-C

iOS7 > version

你可以用NSData'sbase64EncodedStringWithOptions

Encoding:

- (NSString *)encodeToBase64String:(UIImage *)image {
 return [UIImagePNGRepresentation(image) base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
}

Decoding:

- (UIImage *)decodeBase64ToImage:(NSString *)strEncodeData {
  NSData *data = [[NSData alloc]initWithBase64EncodedString:strEncodeData options:NSDataBase64DecodingIgnoreUnknownCharacters];
  return [UIImage imageWithData:data];
}

iOS 6.1 and < version

First Option:使用this链接到encodedecode图像

在你的project中加Base64个班.

Encoding:

 NSData* data = UIImageJPEGRepresentation(yourImage, 1.0f);
 NSString *strEncoded = [Base64 encode:data];

Decoding:

 NSData* data = [Base64 decode:strEncoded ];;
 image.image = [UIImage imageWithData:data];

Another Option:encodingdecoding使用QSUtilities


Ios相关问答推荐

React Native Text组件内部TextInput组件在iOS上的问题:在TextInput组件内部键入文本时失go 焦点

使用音频单元播放音频流,出现爆裂声

SwiftUI-工作表不显示导航标题

OBJC @selector 在另一个实现中不起作用

AVAudioRecord 没有音频

如何将 Info.plist 文件添加到 Xcode for admob,错误 添加后会产生多个命令

Task.cancel() 的 TaskPriority 的区别

一对多关系 Firebase 实时数据库(嵌入数百万条 comments )

NSOperation 有延迟 - 它是异步的还是同步的?

如何在Collection 后更改并保留按钮 colored颜色 ,然后在 SwiftUI 中切换回来?

迁移到 UIKit 生命周期的应用程序不会调用 SceneDelegate

Xcode 14 需要为 Pod Bundles Select 开发团队

我可以使用同一个 Firebase 应用将多个 Flutter 应用添加到一个 Firebase 数据库吗?

光标未显示在 UITextView 中

使用导航控制器在prepareForSegue中设置数据

iOS 中的 Crashlytics 不会继续通过 Fabric 应用程序中的构建您的项目

Xcode 4 + iOS 4.3:存档类型不存在打包程序

swift 语言中的 null / nil

在 iOS 上编写文件

打开 XIB 文件后 Xcode 6.3 冻结/挂起