NSData *imageData = UIImageJPEGRepresentation(image, 0.4);
CGImageSourceRef source = CGImageSourceCreateWithData((__bridge CFDataRef)imageData, NULL);
NSMutableDictionary *metaDataDic = [self getEXIF:imageData];
NSMutableDictionary *exifDic = [[metaDataDic objectForKey:(NSString*)kCGImagePropertyExifDictionary] mutableCopy];
NSMutableDictionary *GPSDictionary = [[metaDataDic objectForKey:(NSString*)kCGImagePropertyGPSDictionary] mutableCopy];
if(!exifDic) { exifDic = [NSMutableDictionary dictionary]; }
if(!GPSDictionary) { GPSDictionary = [NSMutableDictionary dictionary]; }
NSTimeZone *timeZone = [NSTimeZone timeZoneForSecondsFromGMT:8*3600];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setTimeZone:timeZone];
[formatter setDateFormat:@"YYYY:MM:dd hh:mm:ss"];
NSString *now = [formatter stringFromDate:[NSDate date]];
[exifDic setObject:now forKey:(NSString *)kCGImagePropertyExifDateTimeOriginal];
[metaDataDic setObject:exifDic forKey:(NSString*)kCGImagePropertyExifDictionary];
CFStringRef UTI = CGImageSourceGetType(source);
NSMutableData *newImageData = [NSMutableData data];
CGImageDestinationRef destination = CGImageDestinationCreateWithData((__bridge CFMutableDataRef)newImageData, UTI, 1, NULL);
CGImageDestinationAddImageFromSource(destination, source, 0, (__bridge CFDictionaryRef)metaDataDic);
CGImageDestinationFinalize(destination);
Si la valeur initiale de imageData est de 69091 octets, elle deviendra 114691 octets après l'ajout des informations Exif. Je ne veux pas augmenter une taille de données aussi importante après l'ajout des informations Exif. Quelle en est la raison ?