JPEGデータからexif情報を取得する方法

More than 5 years have passed since last update.

とりあえず、stack over flow の情報を基に、exifデータを読み込む事が出来たので、一時的にメモ。

JPEGデータは compression quality のデータを読み込む必要があるため、URLをそのまま渡して、exifデータを読み込んだ方が早そう。後々、ImageIO, CoreLocationについても読み込んで追加する。


ソースコード

#import "ViewController.h"

#import <ImageIO/ImageIO.h>
#import <CoreLocation/CoreLocation.h>

@interface ViewController ()
@end

@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];

NSString *imgPath = [NSString stringWithFormat:@"%@/exit_test.JPG", [[NSBundle mainBundle] resourcePath]];
CGImageSourceRef source = CGImageSourceCreateWithURL((CFURLRef)CFBridgingRetain([NSURL fileURLWithPath:imgPath]), nil);

NSDictionary *metadata = (NSDictionary *) CFBridgingRelease(CGImageSourceCopyPropertiesAtIndex(source, 0, NULL));

//GPS Dictionary
NSDictionary *GPSDictionary = [metadata objectForKey:(NSString *)kCGImagePropertyGPSDictionary];
}
@end

取得したデータ


2013-05-27 01:33:51.685 test_exif[6363:c07] {

Altitude = "103.0715";

AltitudeRef = 0;

Latitude = "35.65283333333333";

LatitudeRef = N;

Longitude = "139.697";

LongitudeRef = E;

TimeStamp = "16:15:16.30";

}