سؤال

I usually use this code form encode/decode images to base64 and can insert in CLOB in database.

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

But from iOS7, can read the images right and decode, but when i encode in ios7 a image from my gallery or camera an update database, this images has bad format and crash my images.

How can encode a imagen in String base64 without crash my format.

هل كانت مفيدة؟

المحلول

I can fixed with this encode:

 - (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];
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top