일부 사용자 지정 메타 데이터가있는 이미지를 사진 앨범에 저장하려고합니다. 저장할 사용자 지정 메타 데이터는 NSDictionary 형태 여야합니다.이미지 메타 데이터에 NSDictionary 추가
NSMutableDictionary *metadata = [[NSMutableDictionary alloc] init];
[metadata setObject:@[@"ele1", @"ele2"] forKey:(NSString*)kCGImagePropertyIPTCKeywords];
NSMutableDictionary *meta = [[NSMutableDictionary alloc] init];
[meta setObject:metadata forKey:(NSString*)kCGImagePropertyIPTCDictionary];
// pass the meta dictionary into writeImageDataToSavedPhotosAlbum
을하지만 내가 원하는 것은의 setObject에 사전을 전달하는 것입니다 : 지금까지 난 단지 다음과 같은 것을 사용하여 이미지 메타 데이터 내로있는 NSArray를 삽입에 성공했다. 메타 데이터가 NSDITIONARY 인 사용자 지정 메타 데이터를 이미지에 삽입하는 데 성공한 사람이 있습니까?
추가 정보 나 이미지 메타 데이터하지만 여전히 행운에 사전을 추가, 내가 여기 Save CUSTOM metadata in an image taken from AVFoundation in iOS있는 코드를 사용하고
. 원본 파일은 임시 디렉토리에 있으며 최종 파일은 writeImageDataToSavedPhotosAlbum을 통해 생성됩니다. 링크와 마찬가지로 결과 이미지에는 사전이 포함되어 있지 않습니다. 어떤 생각?
CGImageSourceRef source = CGImageSourceCreateWithData((CFMutableDataRef)data, NULL);
NSDictionary *metadata = [(NSDictionary *) CGImageSourceCopyPropertiesAtIndex(source,0,NULL)autorelease];
NSMutableDictionary *metadataAsMutable = [metadata mutableCopy];
NSMutableDictionary *RAWDictionary = [[metadataAsMutable objectForKey:(NSString *)kCGImagePropertyRawDictionary]mutableCopy];
if(!RAWDictionary) {
RAWDictionary = [NSMutableDictionary dictionary];
}
[RAWDictionary setValue:@"value1" forKey:@"key1"];
[RAWDictionary setValue:@"value2" forKey:@"key2"];
[metadataAsMutable setObject:RAWDictionary forKey:(NSString *)kCGImagePropertyRawDictionary];
NSMutableData *newData = [NSMutableData data];
CFStringRef UTI = CGImageSourceGetType(source);
CGImageDestinationRef destination = CGImageDestinationCreateWithData((CFMutableDataRef)newData, UTI, 1, NULL);
if(!destination) {
NSLog(@"***Could not create image destination ***");
}
CGImageDestinationAddImageFromSource(destination,source,0, (CFDictionaryRef)metadataAsMutable);
BOOL success = NO;
success = CGImageDestinationFinalize(destination);
if(!success) {
NSLog(@"***Could not create data from image destination ***");
}
가 작동하지 않았다 Thanks..but. 원래의 질문에 몇 가지 추가 정보를 추가했습니다. – Glauco
@Glauco 무슨 뜻입니까 작동하지 않았습니까 ?? 데이터를 보관할 수 있습니까? NSData * data = [NSKeyeArchiver archivedDataWithRootObject : "your data"]와 같습니다. – Allan
제 아이디어는 메타 데이터를 이미지에 추가하는 것이 었습니다. 병합 된 이미지는 ALAssetLibrary를 통해 사진 앨범에 저장됩니다. 그런 다음 나중에 ALAssetLibrary를 사용하여 앨범의 이미지를 검색합니다. 이 시점에서 처음에 저장된 사용자 지정 메타 데이터를 검색하고 싶습니다. NSKeyeArchiver가 어떻게 도움이 될지 모르겠습니다. 모범이 있습니까? 또는 더 많은 정보를 제공 할 수 있습니까? – Glauco