2015-08-24 47 views
2

我想轉換圖像路徑;這些都是文檔目錄成編碼的基本64串的陣列。將圖像路徑數組轉換爲base64編碼的字符串。

這是我的代碼

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字符串???

回答

1

試試這個循環的所有圖像和每個編碼的字符串保存到一個新的數組:

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]; 
} 
+0

謝謝 - @Jacopo Penzo –

+0

如何這個數組發送到JSON –

+0

@Ammy嘗試類似的東西,讓你的JSON字符串:http://stackoverflow.com/a/20235244/2059307 –

1

通過base64EncodedStringWithOptions:

這裏的代碼轉換您ImagePaths(絃樂),以NSData的和NSData的回字符串:

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你把所有imagePaths爲base64編碼字符串。

看看這個帖子從SO更多的解釋:Base64 Decoding in iOS 7+

+0

你能舉一個例子,因爲我已搜查了很多,無法弄清楚究竟需要做些什麼? –

1

你可以試試這個

Encoding

- (NSString *)encodeToBase64String:(UIImage *)image { 
return [UIImagePNGRepresentation(image) base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength]; 
} 

Decoding

- (UIImage *)decodeBase64ToImage:(NSString *)strEncodeData { 
    NSData *data = [[NSData alloc]initWithBase64EncodedString:strEncodeData options:NSDataBase64DecodingIgnoreUnknownCharacters]; 
    return [UIImage imageWithData:data]; 
} 

從喲得到image烏爾path您可以使用此代碼

NSString* imagePath = [recipeImages objectAtIndex:i]; 
UIImage *image = [[UIImage alloc] initWithContentsOfFile:imagePath]; 

然後加入encodedcontentarray

希望它有幫助。

相關問題