Retrieving the EXIF date/time from 250k images
Retrieving the EXIF date/time from 250k images
- Subject: Retrieving the EXIF date/time from 250k images
- From: Gabriel Zachmann via Cocoa-dev <email@hidden>
- Date: Sun, 14 Aug 2022 23:22:17 +0200
I would like to collect the date/time stored in an EXIF tag in a bunch of
images.
I thought I could do so with the following procedure
(some details and error checking omitted for sake of clarity):
NSMutableArray * dates_and_times = [NSMutableArray arrayWithCapacity:
[imagefiles count]];
CFDictionaryRef exif_dict;
CFStringRef dateref = NULL;
for ( NSString* filename in imagefiles )
{
NSURL * imgurl = [NSURL fileURLWithPath: filename isDirectory: NO];
// escapes any chars that are not allowed in URLs (space, &, etc.)
CGImageSourceRef image = CGImageSourceCreateWithURL( (__bridge
CFURLRef) imgurl, NULL );
CFDictionaryRef fileProps = CGImageSourceCopyPropertiesAtIndex( image,
0, NULL );
bool success = CFDictionaryGetValueIfPresent( fileProps,
kCGImagePropertyExifDictionary, (const void **) & exif_dict );
success = CFDictionaryGetValueIfPresent( exif_dict,
kCGImagePropertyExifDateTimeDigitized, (const void **) & dateref );
NSString * date_str = [[NSString alloc] initWithString: (__bridge
NSString * _Nonnull)( dateref ) ];
NSDate * iso_date = [isoDateFormatter_ dateFromString: date_str];
if ( iso_date )
[dates_and_times addObject: iso_date ];
CFRelease( fileProps );
}
But, I get the impression, this code actually loads each and every image.
On my Macbook, it takes 3m30s for 250k images (130GB).
So, the big question is: can it be done faster?
I know the EXIF tags are part of the image file, but I was hoping it might be
possible to load only those EXIF dictionaries.
Or are the CGImage functions above already clever enough to implement this idea?
Best regards, Gab.
Attachment:
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden