1

URL から画像データを取得して に格納し、 で画像を取得するためNSStringに使用していますが、文字列をデータに変換する際に問題があります (エンコードの問題でしょうか?)。NSStringUIImageView

// 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;
4

1 に答える 1

2

その文字列はどこで入手しましたか?

base64エンコーディングを使用するために、画像を文字列に変換する方がよい場合。この文字列自体は、すべてのブラウザでも識別されます。画像のbase64エンコーディングに使用できるコードスニペットはたくさんあります。

次のものは私のために働いた

-(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 @"";
    }
}

NSDataAdditionクラスの場合、 Base64カテゴリをご覧ください

于 2012-09-28T06:35:47.967 に答える