Search code examples
iosphotosphotokit

IOS8. Photos application bug?


When I use filters in standard Photos application in IOS8, I can't get full metadata. I try two methods fetch metadata:

[manager requestImageDataForAsset:asset options:options resultHandler:^(NSData *imageData, NSString *dataUTI, UIImageOrientation orientation, NSDictionary *info) {
    CIImage *ciimage = [CIImage imageWithData:imageData];
    NSMutableDictionary *exif = [NSMutableDictionary dictionary];
    [exif addEntriesFromDictionary:ciimage.properties];
}];

[asset requestContentEditingInputWithOptions:editOptions completionHandler:^(PHContentEditingInput *contentEditingInput, NSDictionary *info) {
    CIImage *cimage = [CIImage imageWithContentsOfURL:contentEditingInput.fullSizeImageURL];
    NSMutableDictionary *exif = [NSMutableDictionary dictionary];
    [exif addEntriesFromDictionary:cimage.properties];
}];

I have not found any mention to the application Photos. I get such a result is always:

{
ColorModel = RGB;
DPIHeight = 72;
DPIWidth = 72;
Depth = 8;
Orientation = 1;
PixelHeight = 2592;
PixelWidth = 1936;
"{Exif}" =     {
    ColorSpace = 1;
    PixelXDimension = 1936;
    PixelYDimension = 2592;
};
"{JFIF}" =     {
    DensityUnit = 1;
    JFIFVersion =         (
        1,
        0,
        1
    );
    XDensity = 72;
    YDensity = 72;
};
"{TIFF}" =     {
    Orientation = 1;
};

Has anyone found a solution how to get the metadata of the images that have been edited in Photos?

I want see metadata like this:

link


Solution

  • I found how fetch original metadata:

    PHImageRequestOptions *options = [PHImageRequestOptions new];
    options.networkAccessAllowed = YES;
    options.synchronous = YES;
    options.version = PHImageRequestOptionsVersionOriginal;
    
    [manager requestImageDataForAsset:asset options:options resultHandler:^(NSData *imageData, NSString *dataUTI, UIImageOrientation orientation, NSDictionary *info) {
        CIImage *ciimage = [CIImage imageWithData:imageData];
        NSMutableDictionary *exif = [NSMutableDictionary dictionary];
        [exif addEntriesFromDictionary:ciimage.properties];
    }];