Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Convert UIImage to NSString (and vice-versa)

I need a method to convert a UIImage in a NSString and then convert the NSString back to a UIImage.

Thanks.

like image 830
Pedro Henrique Cavallieri Fran Avatar asked Dec 12 '22 13:12

Pedro Henrique Cavallieri Fran


2 Answers

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];
}
like image 200
Roman Avatar answered Dec 26 '22 14:12

Roman


Convert it to a binary stream instead (NSData). This will depend on the format of your UIImage. If it's a JPEG/PNG for instance, you do:

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

UPDATE: Converting the binary data to NSString is a bad idea, that is why we have the class NSData. The OP wants to be able to send it as a data stream and then reconstruct it again; NSString will not be needed for this.

like image 26
Gustav Larsson Avatar answered Dec 26 '22 14:12

Gustav Larsson