UIImage метаданные

В моем приложении я получаю UIImage из библиотеки ресурсов, это изображение содержит метаданные. Затем приложение изменяет размеры и поворачивает изображение, что, в свою очередь, создает новое изображение. Новое изображение не содержит исходных метаданных, которые ожидаются, но как мне добавить метаданные обратно в изображение перед загрузкой?

Заранее спасибо!

Ответы на вопрос(3)

Решение Вопроса

вот метод, который я использовал, только если кто-то еще задается вопросом, как это сделать! :)

-(UIImage *)addMetaData:(UIImage *)image {

    NSData *jpeg = [NSData dataWithData:UIImageJPEGRepresentation(image, 1.0)];

    CGImageSourceRef source = CGImageSourceCreateWithData((__bridge CFDataRef)jpeg, NULL);

    NSDictionary *metadata = [[asset_ defaultRepresentation] metadata];

    NSMutableDictionary *metadataAsMutable = [metadata mutableCopy];

    NSMutableDictionary *EXIFDictionary = [metadataAsMutable objectForKey:(NSString *)kCGImagePropertyExifDictionary];
    NSMutableDictionary *GPSDictionary = [metadataAsMutable objectForKey:(NSString *)kCGImagePropertyGPSDictionary];
    NSMutableDictionary *TIFFDictionary = [metadataAsMutable objectForKey:(NSString *)kCGImagePropertyTIFFDictionary];
    NSMutableDictionary *RAWDictionary = [metadataAsMutable objectForKey:(NSString *)kCGImagePropertyRawDictionary];
    NSMutableDictionary *JPEGDictionary = [metadataAsMutable objectForKey:(NSString *)kCGImagePropertyJFIFDictionary];
    NSMutableDictionary *GIFDictionary = [metadataAsMutable objectForKey:(NSString *)kCGImagePropertyGIFDictionary];

    if(!EXIFDictionary) {
        EXIFDictionary = [NSMutableDictionary dictionary];
    }

    if(!GPSDictionary) {
        GPSDictionary = [NSMutableDictionary dictionary];
    }

    if (!TIFFDictionary) {
        TIFFDictionary = [NSMutableDictionary dictionary];
    }

    if (!RAWDictionary) {
        RAWDictionary = [NSMutableDictionary dictionary];
    }

    if (!JPEGDictionary) {
        JPEGDictionary = [NSMutableDictionary dictionary];
    }

    if (!GIFDictionary) {
        GIFDictionary = [NSMutableDictionary dictionary];
    }

    [metadataAsMutable setObject:EXIFDictionary forKey:(NSString *)kCGImagePropertyExifDictionary];
    [metadataAsMutable setObject:GPSDictionary forKey:(NSString *)kCGImagePropertyGPSDictionary];
    [metadataAsMutable setObject:TIFFDictionary forKey:(NSString *)kCGImagePropertyTIFFDictionary];
    [metadataAsMutable setObject:RAWDictionary forKey:(NSString *)kCGImagePropertyRawDictionary];
    [metadataAsMutable setObject:JPEGDictionary forKey:(NSString *)kCGImagePropertyJFIFDictionary];
    [metadataAsMutable setObject:GIFDictionary forKey:(NSString *)kCGImagePropertyGIFDictionary];

    CFStringRef UTI = CGImageSourceGetType(source);

    NSMutableData *dest_data = [NSMutableData data];

    CGImageDestinationRef destination = CGImageDestinationCreateWithData((__bridge CFMutableDataRef)dest_data,UTI,1,NULL);

    //CGImageDestinationRef hello;

    CGImageDestinationAddImageFromSource(destination,source,0, (__bridge CFDictionaryRef) metadataAsMutable);

    BOOL success = NO;
    success = CGImageDestinationFinalize(destination);

    if(!success) {
    }

    dataToUpload_ = dest_data;

    CFRelease(destination);
    CFRelease(source);

    return image;
}
 07 мая 2013 г., 10:59
#import & lt; ImageIO / ImageIO.h & gt; нужен, чтобы получить константы
 shoughton12309 февр. 2013 г., 16:10
Это ALAsset :)
 28 авг. 2013 г., 11:04
где вы создали ALAsset и как вы его используете? код вы также предоставляете код для этого?
 08 февр. 2013 г., 09:46
что такое актив_?
 shoughton12329 авг. 2013 г., 16:01
Привет, ALAsset идет из средства выбора изображений ранее в приложении. Пожалуйста, ознакомьтесь с документацией Apple для использования средства выбора изображений и работы с ALAssets:developer.apple.com/library/ios/documentation/uikit/reference/… или посмотрите ELCImagePickerController:github.com/B-Sides/ELCImagePickerController, Я использовал свой собственный инструмент выбора изображений для предоставления расширенных функций, но для простого выбора библиотеки изображений подойдет любой из них. Спасибо Сэм

что это укажет вам правильное направление.

Email jpg, созданный в приложении, включая метаданные

 shoughton12314 мая 2012 г., 14:23
Это работает, только если я хочу сохранить изображение обратно в библиотеку ресурсов, мне нужно добавить его в сам UIImage для загрузки. Ура, хотя.

Ваш ответ на вопрос