Is it possible to add own metadata in captured Images in Swift

廉价感情. 提交于 2019-12-04 17:33:02

Just Convert Below code to Swift. Below code are written in Objective-C. You just need to create IPTC or TIFF dictionary. Add value with suitable IPTC/TIFF key and write dictionary data(Meta Data) on image.

  - (void) imagePickerController: (UIImagePickerController *)picker didFinishPickingMediaWithInfo: (NSDictionary *)info
    {

        UIImage *image = info[UIImagePickerControllerOriginalImage];

        //Here We Get current system date and time and store as a description of photo
        NSDateFormatter *dateFormatter=[[NSDateFormatter alloc] init];
        [dateFormatter setDateFormat:@"dd-MM-yyyy"];
        NSLog(@"Date Formatter : %@",[dateFormatter stringFromDate:[NSDate date]]);

        //hh:mm:ss
        NSDateFormatter *timeFormatter=[[NSDateFormatter alloc] init];
        [timeFormatter setDateFormat:@"hh:mm:ss"];
        NSLog(@"time Formatterr : %@",[timeFormatter stringFromDate:[NSDate date]]);

    //ADD IPTC Dictionary Data as a META DATA
        NSMutableDictionary *iptcDict = [NSMutableDictionary dictionary];
        [iptcDict setValue:[[DataEngine sharedInstance] getAlbumName] forKey:(NSString *)kCGImagePropertyIPTCObjectTypeReference]; //folder name
        [iptcDict setValue:@“Renish Dadhaniya - 101" forKey:(NSString *)kCGImagePropertyIPTCObjectAttributeReference]; //add Image ID -get using query from database

        [iptcDict setValue:[NSString stringWithFormat:@“Renish Sweet Memory "forKey:(NSString *)kCGImagePropertyIPTCObjectName]; //Add Image name
        [iptcDict setValue:[dateFormatter stringFromDate:[NSDate date]]forKey:(NSString *)kCGImagePropertyIPTCDateCreated]; //Add Image Date
        [iptcDict setValue:[timeFormatter stringFromDate:[NSDate date]]forKey:(NSString *)kCGImagePropertyIPTCTimeCreated]; //Add Image Time

        NSMutableDictionary *dict = [NSMutableDictionary dictionary];
        [dict setValue:iptcDict forKey:(NSString *)kCGImagePropertyIPTCDictionary];

        //Get Iamge Url
         __block NSURL *imageAssestURL = nil;

        [asSetLib writeImageToSavedPhotosAlbum:image.CGImage metadata:dict completionBlock:^(NSURL* assetURL, NSError* error) {

            if (error) {
                NSLog(@"Image could not be safed to the assets library: %@", error);
                imageAssestURL = nil;
            }
            else {
                NSLog( @"Image safed successfully to assetURL: %@", assetURL);
                imageAssestURL = assetURL;

                       }

        }];

        [picker dismissViewControllerAnimated:YES completion:nil];

    }
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!