1

I am getting image data from URL and store in NSString,using NSString to get image in an UIImageView, but I'm having troubles converting the string into data (maybe it's an encoding problem?).

// this works
NSURL* imageurl = [NSURL URLWithString:@"http://www.google.co.in/intl/en_ALL/images/logos/images_logo_lg.gif"];
NSData* data = [NSData dataWithContentsOfURL:imageurl];
UIImage* image = [UIImage imageWithData:data];
imageview.image=image; 


// i am trying this  
NSString* str1 = @"<47494638 .......... 47494638>";
NSData* data1 = [str dataUsingEncoding:NSUTF8StringEncoding];
UIImage* image1 = [UIImage imageWithData:data1];

imageview1.image=image1;
Alessandro Vendruscolo
  • 14,493
  • 4
  • 32
  • 41

1 Answers1

2

Where did you get that string?

if you want to convert image to string better to use base64 encoding. This string itself is identified by all browsers also. There are lots of code snippet available for base64 encoding for image.

the following one worked for me

-(NSString *)getStringFromImage:(UIImage *)image{


    NSData *decdata1 = UIImagePNGRepresentation(image);
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *appFile = [documentsDirectory stringByAppendingPathComponent:@"server.png"];

    [decdata1 writeToFile:appFile atomically:YES];


    if(image){
        NSData *dataObj = UIImageJPEGRepresentation(image, 1);
        return [dataObj base64Encoding];
    } else {
        return @"";
    }
}

FOR NSDataAddition class have a look at Base64 catogary

Community
  • 1
  • 1
Hashim MH
  • 1,576
  • 1
  • 15
  • 29