2014-01-12 62 views
0

我通常使用此代碼格式編碼/解碼圖像base64,並可以插入數據庫中的CLOB。編碼圖像在iOS7代碼爲CLOB

//Return image encoded to base64 
- (NSString *)encodeToBase64String:(UIImage *)image { 
NSData * data = [UIImagePNGRepresentation(image) base64EncodedDataWithOptions:NSDataBase64Encoding64CharacterLineLength]; 
NSString *convertido=[data base64EncodedStringWithOptions:kNilOptions]; 
return convertido; 
} 

//Descodifica la foto de string a imagen se le llama mas arriba 

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

但是從iOS7,可以讀取圖像正確解碼,但是當我在ios7一個圖像的更新數據庫編碼從我的畫廊或相機,這個圖像有壞的格式和系統崩潰我的圖片。

如何在String base64中對imagen進行編碼而不會使我的格式崩潰。

回答

0

我可以固定與此編碼:

- (NSData*)encodeDictionary2:(NSDictionary*)dictionary { 
     NSMutableArray *parts = [[NSMutableArray alloc] init]; 
     for (NSString *key in dictionary) { 
     NSString *encodedValue = [dictionary objectForKey:key]; 
     NSString *encodedKey = [key stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
     NSString *part = [NSString stringWithFormat: @"%@=%@", encodedKey, encodedValue]; 
     [parts addObject:part]; 
    } 
    NSString *encodedDictionary = [parts componentsJoinedByString:@"&"]; 
    return [encodedDictionary dataUsingEncoding:NSUTF8StringEncoding]; 
}