1

我正在从 URL 获取图像数据并存储在 中NSStringNSString用于在 中获取图像UIImageView,但是我在将字符串转换为数据时遇到了麻烦(可能是编码问题?)。

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

FOR NSDataAddition 类看看 Base64 分类

于 2012-09-28T06:35:47.967 回答