2011-05-01 163 views

回答

2

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

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

UPDATE:二进制数据转换为NSString是一个坏主意,这就是为什么我们有一流的NSData。 OP希望能够将其作为数据流发送,然后重新构建它; NSString将不需要这个。

+0

它没有工作。结果是(null)。 – 2011-05-01 16:34:12

+0

你有没有检查到你有一个有效的NSData对象?如果UIImage格式不受支持,则UIImage * Representation将返回nil。 – 2011-05-01 16:43:49

+0

该图像有效。 NSData也是有效的。 – 2011-05-01 16:44:12

0

使用UIImagePNGRepresentation或UIImageJPEGRepresentation转换为PNG或JPEG,它将返回一个NSData,然后将NSData转换为一个字符串(不知道您想如何执行该映射)。如何处理NSData?您可以读取/写入文件。

+0

我不想写入磁盘,因为I/O延迟太高。 – 2011-05-01 16:42:37

+0

我想写一个字符串和一个nsdata到一个文件中,这怎么可能?有任何想法吗? – Warrior 2011-06-08 13:21:13

8

为> = 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]; 
} 
相关问题