2016-05-30 5 views
4

CGImageProperties.hには、EXIFおよびIPTCメタデータを指定するための一連のキーがリストされています。そして、私は成功したJPEG画像のEXIFメタデータを設定することができます。iOSでXMP画像メタデータを設定するにはどうすればよいですか?

- (NSData*)imageDataForImage:(UIImage*)image { 
    NSDictionary *metadata = @{kCGImagePropertyExifDictionary: @{(NSString*)kCGImagePropertyExifLensModel: @"my lens"}}; 

    NSData* rawImageData = UIImageJPEGRepresentation(image, 1.0f); 
    NSMutableData *imageData = [NSMutableData data]; 
    CGImageSourceRef source = CGImageSourceCreateWithData((__bridge CFDataRef) rawImageData, NULL); 
    CGImageDestinationRef destination = CGImageDestinationCreateWithData((__bridge CFMutableDataRef)imageData, kUTTypeJPEG, 1, NULL); 
    CGImageDestinationAddImageFromSource(destination, source, 0, (__bridge CFDictionaryRef) metadata); 
    CGImageDestinationFinalize(destination); 
    CFRelease(source); 
    CFRelease(destination); 
    return imageData; 
} 

はしかし、私は、特にXMP.GPanoキーをXMPメタデータを指定する方法を欠けています。私はこのような辞書を試した:

@{@"XMP": @{@"GPano": @{@"PosePitchDegrees": @20}}} 

しかし、それは単に無視されます。これはCore Graphicsを使っても可能ですか?

+0

こんにちは、私は同じ問題に直面しています。あなたは解決策を見つけることができましたか?それとも単にイメージの宛先を使用することで可能ではありませんか? –

答えて

0

これにはXMP SDKを使用できます。これは堅牢でクロスプラットフォームなソリューションです(実際にはApple内部で使用されています)。

関連する問題