将UIImage转换为NSString(反之亦然)

时间:2011-05-01 16:19:50

标签: iphone sdk nsstring uiimage

我需要一个方法来转换NSString中的UIImage,然后将NSString转换回UIImage。

感谢。

3 个答案:

答案 0 :(得分:10)

for> = IOS 7

- (NSString *)imageToNSString:(UIImage *)image
{
    NSData *imageData = UIImagePNGRepresentation(image);

    return [imageData base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
}

- (UIImage *)stringToUIImage:(NSString *)string
{
    NSData *data = [[NSData alloc]initWithBase64EncodedString:string
                                                  options:NSDataBase64DecodingIgnoreUnknownCharacters];

    return [UIImage imageWithData:data];
}

答案 1 :(得分:2)

将其转换为二进制流(NSData)。这取决于UIImage的格式。例如,如果它是JPEG / PNG,你可以:

NSData *data1 = UIImageJPEGRepresentation(image, 1.0);
NSData *data2 = UIImagePNGRepresentation(image);

更新:将二进制数据转换为NSString是一个坏主意,这就是我们拥有类NSData的原因。 OP希望能够将其作为数据流发送,然后再次重建;这不需要NSString

答案 2 :(得分:0)

使用UIImagePNGRepresentation或UIImageJPEGRepresentation转换为PNG或JPEG,它将返回NSData,然后将NSData转换为字符串(不确定如何进行映射)。如何处理NSData?您可以将其读/写到文件中。