UIImage与NSString(OC)或者 String (Swift)使用base64的转换

来源:互联网 发布:水冷机箱推荐 知乎 编辑:程序博客网 时间:2024/05/29 07:32

当数据传输时,我们常常将UIImage转换为字符串,OC对应的NSString或者Swift对应的String,这时直接的编码转换会报错,或者返回nil,分享给大家我的解决方式。

OC:

// UIImage转成Base64字符串:

UIImage *image = [UIImage imageNamed:@"test.png"];

NSData *data = UIImageJPEGRepresentation(image, 1.0f);

NSString *encodedImageStr = [data base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];

// Base64字符串转UIImage:

NSData *decodedImageData = [[NSData alloc] initWithBase64EncodedString:encodedImageStr options:NSDataBase64DecodingIgnoreUnknownCharacters];

UIImage *image = [UIImage imageWithData:decodedImageData];


Swift


// UIImage转成Base64字符串:

var data: NSData;

if (UIImagePNGRepresentation(image) == nil)

{

    data = UIImageJPEGRepresentation(image, 1.0);

}

else

{

    data = UIImagePNGRepresentation(image);

}

var photo_content: String = data.base64EncodedStringWithOptions(NSDataBase64EncodingOptions.Encoding64CharacterLineLength);

     
// Base64字符串转UIImage:

var imageStr: String = “XXXXXX”;        

if var data: NSData = NSData(base64EncodedString: imageStr, options:NSDataBase64DecodingOptions.IgnoreUnknownCharacters)

 {

  if var image: UIImage = UIImage(data: data)

{

some...

}

}

1 0