Конвертировать UIImage в NSString (и наоборот) - PullRequest
4 голосов

Мне нужен метод для преобразования UIImage в NSString, а затем преобразовать NSString обратно в UIImage.

Спасибо.

Ответы [ 3 ]

10 голосов
/ 22 января 2014

для> = 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];
}
2 голосов
/ 01 мая 2011

Вместо этого преобразуйте его в двоичный поток (NSData). Это будет зависеть от формата вашего UIImage. Если это, например, JPEG / PNG, вы делаете:

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

ОБНОВЛЕНИЕ: преобразование двоичных данных в NSString - плохая идея, поэтому у нас есть класс NSData. OP хочет иметь возможность отправить его в виде потока данных, а затем восстановить его снова; NSString для этого не понадобится.

0 голосов
/ 01 мая 2011

Преобразование в PNG или JPEG с использованием UIImagePNGRepresentation или UIImageJPEGRepresentation, которое вернет NSData, а затем преобразует NSData в строку (не знаю, как вы хотите сделать это отображение). Как насчет просто иметь дело с NSData? Вы можете прочитать / записать это в файл.

...