2016-05-30 7 views
4

CGImageProperties.h перечисляет кучу ключей для указания метаданных EXIF ​​и IPTC. И я могу успешно установить метаданные EXIF ​​для изображений JPEG:Как установить метаданные изображений XMP в iOS?

- (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, а именно XMP.GPano ключей. Я пробовал такой словарь:

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

но он просто игнорируется. Возможно ли это с помощью Core Graphics?

+0

Привет, Я столкнулся с той же проблемой, смогли ли вы найти решение или это просто невозможно с помощью назначения изображения? –

ответ

0

Для этого вы можете использовать XMP SDK. Это надежное и кросс-платформенное решение (фактически используемое Apple внутри компании).

 Смежные вопросы

  • Нет связанных вопросов^_^