在我的應用程序中,我從資產庫中檢索UIImage,此圖像具有元數據。該應用程序然後調整大小和旋轉圖像,從而創建一個新的圖像。新圖像沒有預期的原始元數據,但如何在上載前將元數據添加回圖像?UIImage元數據
在此先感謝!
在我的應用程序中,我從資產庫中檢索UIImage,此圖像具有元數據。該應用程序然後調整大小和旋轉圖像,從而創建一個新的圖像。新圖像沒有預期的原始元數據,但如何在上載前將元數據添加回圖像?UIImage元數據
在此先感謝!
修正它我自己,這裏是一種方法,我只是在任何人都想知道如何做到這一點! :)
-(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;
}
看看這個答案。我認爲這會讓你指向正確的方向。
在這裏你去Git Hub Project和一些教程鏈接Adding metadata to iOS images the easy way,Getting metadata from images on iOS。最好的問候;)
這隻適用於如果我想將圖像保存回資產庫,我需要將其添加到UIImage本身上傳。儘管歡呼。 – shoughton123
什麼是asset_? – bneupaane
它是一個ALAsset :) – shoughton123
需要#import來獲取常量 –
Anth0