UIImage to base64字符串编码

时间:2010-10-08 09:57:53

标签: iphone objective-c

如何将UIimage转换为base64编码的字符串?我找不到任何有详细说明的例子或代码。

7 个答案:

答案 0 :(得分:56)

我想知道为什么你没有找到你的问题,因为这是一个非常古老的问题&可以找到herehere

反正, 您需要先在项目中添加NSData类别,这些类别可从此处获取 -

headerimplementation 然后按以下方式将UIImage对象转换为NSData

NSData *imageData = UIImageJPEGRepresentation(image, 1.0);

然后应用 Base64 编码将其转换为base64编码的字符串:

NSString *encodedString = [imageData base64Encoding];

答案 1 :(得分:45)

iOS 7中的更改允许在不使用任何外部类别的情况下完成此操作,以支持Base64编码/解码。

您可以直接使用以下方式编写:

- (NSString *)base64String {
    return [UIImagePNGRepresentation(self) base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
}

答案 2 :(得分:9)

您可以按照以下代码

-(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];
}

答案 3 :(得分:7)

@implementation UIImage (Extended)

- (NSString *)base64String {
    NSData * data = [UIImagePNGRepresentation(self) base64EncodedDataWithOptions:NSDataBase64Encoding64CharacterLineLength];
    return [NSString stringWithUTF8String:[data bytes]];
}

@end

答案 4 :(得分:3)

NSData(Base64)自此帖子的上一次回复以来略有变化。

你现在应该使用:

NSData *base64EncodedImage = [UIImageJPEGRepresentation(img, 0.8) base64EncodingWithLineLength:0];

答案 5 :(得分:2)

Swift 3

我使用 base64EncodedString() Data()对象转换为base64字符串

将图片转换为base64字符串

import { MyCustomModule } from './lib/myCustomLib.module;

export MyCustomModule;

答案 6 :(得分:0)

在ios中将图像转换为base64时,使用base64编码的字符串中的新行“\ n”:

使用此代码:


 UIImage* orginalImage = [info objectForKey:UIImagePickerControllerOriginalImage];



        NSIndexPath *indexPath = [NSIndexPath indexPathForRow:isRowIndex inSection:isSectionIndex] ;

        UITableViewCell *cell = [jobstable cellForRowAtIndexPath:indexPath];

        UIImageView *tableIMAGE=(UIImageView *)[cell.contentView viewWithTag:19];

        tableIMAGE.image=orginalImage;



imageStris = [UIImageJPEGRepresentation(tableIMAGE.image,1)base64Encoding];

answersARRAY[indexPath.row] = [NSString stringWithFormat:@"-1,%@,%@",answersARRAY[indexPath.row],imageStris];

[self dismissViewControllerAnimated:YES completion:nil];