Jak usunąć wszystkie dane exif w UIImage za pomocą target-c? I udało się uzyskać dane EXIF przy użyciu następujących:Pozbycie się wszystkich danych Exif w Objective-C
NSData* pngData = UIImagePNGRepresentation(image);
CGImageSourceRef imageSource = CGImageSourceCreateWithData((CFDataRef)pngData, NULL);
NSDictionary* dic = nil;
if (NULL == imageSource)
{
#ifdef _DEBUG
CGImageSourceStatus status = CGImageSourceGetStatus (source);
NSLog (@"Error: file name : %@ - Status: %d", file, status);
#endif
}
else
{
CFDictionaryRef propertyRef = CGImageSourceCopyPropertiesAtIndex (imageSource, 0, NULL);
CGImageMetadataRef metadataRef = CGImageSourceCopyMetadataAtIndex (imageSource, 0, NULL);
// CFDictionaryRef metadataRef = CFDictionaryGetValue(imageProperties, kCGImagePropertyExifDictionary);
if (metadataRef) {
NSDictionary* immutableMetadata = (NSDictionary *)metadataRef;
if (immutableMetadata) {
dic = [ NSDictionary dictionaryWithDictionary : (NSDictionary *)metadataRef ];
}
CFRelease (metadataRef);
}
CFRelease(imageSource);
imageSource = nil;
}
return dic;
Dzięki za odpowiedź, to pomoże pełna. Po usunięciu EXIF && GPS z CGImage dane obrazu zostają skompresowane, ponieważ zapisuję UIImage przez "writeImageToSavedPhotosAlbum". Jeśli dodaję "kCGImageDestinationLossyCompressionQuality" jako 1.0 do "removeExifProperties", obraz wyjściowy będzie większy niż oryginalne dane. Czy masz jakieś sugestie, aby zachować dane obrazu jako oryginalne, ale usunąć niektóre metadane, takie jak EXIF i GPS? –