2013-02-28 2 views
0

일부 사용자 지정 메타 데이터가있는 이미지를 사진 앨범에 저장하려고합니다. 저장할 사용자 지정 메타 데이터는 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 ***"); 
} 

답변

0

이 시도 :

//covert image to nsdata format 
NSData *imageData = [[NSData alloc]initWithContentsOfFile:@"your image path"]; 
NSMutableDictionary *metadata = [[NSMutableDictionary alloc] init]; 
[metadata setObject:imageData forKey:@"imageData"]; 
+0

가 작동하지 않았다 Thanks..but. 원래의 질문에 몇 가지 추가 정보를 추가했습니다. – Glauco

+0

@Glauco 무슨 뜻입니까 작동하지 않았습니까 ?? 데이터를 보관할 수 있습니까? NSData * data = [NSKeyeArchiver archivedDataWithRootObject : "your data"]와 같습니다. – Allan

+0

제 아이디어는 메타 데이터를 이미지에 추가하는 것이 었습니다. 병합 된 이미지는 ALAssetLibrary를 통해 사진 앨범에 저장됩니다. 그런 다음 나중에 ALAssetLibrary를 사용하여 앨범의 이미지를 검색합니다. 이 시점에서 처음에 저장된 사용자 지정 메타 데이터를 검색하고 싶습니다. NSKeyeArchiver가 어떻게 도움이 될지 모르겠습니다. 모범이 있습니까? 또는 더 많은 정보를 제공 할 수 있습니까? – Glauco

관련 문제