Objective-c - Pourquoi l'ajout d'informations Exif augmente-t-il la taille des données photo ?
给我你的怀抱
给我你的怀抱 2017-05-02 09:37:44
0
0
739
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 ?

给我你的怀抱
给我你的怀抱

répondre à tous(0)
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal