Ios 将映像路径数组转换为base64编码字符串。?
我想将文档目录中的图像路径数组转换为编码的baSE 64字符串 这是我的密码Ios 将映像路径数组转换为base64编码字符串。?,ios,objective-c,base64,Ios,Objective C,Base64,我想将文档目录中的图像路径数组转换为编码的baSE 64字符串 这是我的密码 NSArray *recipeImages = [savedImagePath valueForKey:@"Image"]; 此数组包含图像的路径(多个图像) 这是阵列在日志中的外观 Saved Images == ( "/Users/ZAL02M/Library/Developer/CoreSimulator/Devices/F1F3C01E-8686-4367-82FB-80B003E2F416/data/Co
NSArray *recipeImages = [savedImagePath valueForKey:@"Image"];
此数组包含图像的路径(多个图像)
这是阵列在日志中的外观
Saved Images == (
"/Users/ZAL02M/Library/Developer/CoreSimulator/Devices/F1F3C01E-8686-4367-82FB-80B003E2F416/data/Containers/Data/Application/694494B1-0DCA-497A-B8B0-586276EEF240/Documents/cached0.png",
"/Users/ZAL02M/Library/Developer/CoreSimulator/Devices/F1F3C01E-8686-4367-82FB-80B003E2F416/data/Containers/Data/Application/694494B1-0DCA-497A-B8B0-586276EEF240/Documents/cached1.png"
)
如何制作base64字符串?通过base64EncodedStringWithOptions:
代码如下:
NSArray *recipeImages = [savedImagePath valueForKey:@"Image"];
NSMutableArray *mutableBase64StringsArray = @[].mutableCopy;
for (NSString *imagePath in recipeImages)
{
NSData *imagePathData = [imagePath dataUsingEncoding:NSUTF8StringEncoding];
NSString *base64ImagePath = [imagePathData base64EncodedStringWithOptions:0];
[mutableBase64StringsArray addObject:base64ImagePath];
}
在mutableBase64StringsArray
中,所有图像路径都是base64编码字符串
查看SO的这篇文章,了解更多解释:你可以试试这个
编码
:
- (NSString *)encodeToBase64String:(UIImage *)image {
return [UIImagePNGRepresentation(image) base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
}
- (UIImage *)decodeBase64ToImage:(NSString *)strEncodeData {
NSData *data = [[NSData alloc]initWithBase64EncodedString:strEncodeData options:NSDataBase64DecodingIgnoreUnknownCharacters];
return [UIImage imageWithData:data];
}
解码
:
- (NSString *)encodeToBase64String:(UIImage *)image {
return [UIImagePNGRepresentation(image) base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
}
- (UIImage *)decodeBase64ToImage:(NSString *)strEncodeData {
NSData *data = [[NSData alloc]initWithBase64EncodedString:strEncodeData options:NSDataBase64DecodingIgnoreUnknownCharacters];
return [UIImage imageWithData:data];
}
要从路径获取图像
,可以使用此代码
NSString* imagePath = [recipeImages objectAtIndex:i];
UIImage *image = [[UIImage alloc] initWithContentsOfFile:imagePath];
然后将编码的内容添加到数组
希望能有所帮助。尝试以下方法循环所有图像,并将每个编码字符串保存到新数组中:
NSMutableArray *encodedImages = [NSMutableArray new];
for (NSString *path in recipeImages)
{
UIImage *image = [UIImage imageWithContentsOfFile:path];
NSData *imageData = UIImagePNGRepresentation(image);
NSString *dataString = [imageData base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
[encodedImages addObject:dataString];
}
你能举一个例子吗,因为我已经搜索了很多次,但没有弄清楚到底需要做什么?谢谢-@Jacopo PenzoHow将这个数组发送到JSON@Ammy尝试类似的方法来获取JSON字符串: