-(UIImage*)fullScreenImage:(ALAsset *)imageAsset{
ALAssetRepresentation *assetRepresentation = [imageAsset defaultRepresentation];
CGImageRef fullResImage = [assetRepresentation fullResolutionImage];
NSString *adjustment = [[assetRepresentation metadata] objectForKey:@"AdjustmentXMP"];
if (adjustment) {
NSData *xmpData = [adjustment dataUsingEncoding:NSUTF8StringEncoding];
CIImage *image = [CIImage imageWithCGImage:fullResImage];
NSError *error = nil;
NSArray *filterArray = [CIFilter filterArrayFromSerializedXMP:xmpData
inputImageExtent:image.extent
error:&error];
CIContext *context = [CIContext contextWithOptions:nil];
if (filterArray && !error) {
for (CIFilter *filter in filterArray) {
[filter setValue:image forKey:kCIInputImageKey];
image = [filter outputImage];
}
fullResImage = [context createCGImage:image fromRect:[image extent]];
}
}
UIImage *result = [UIImage imageWithCGImage:fullResImage
scale:[assetRepresentation scale]
orientation:(UIImageOrientation)[assetRepresentation orientation]];
return result;
}
上記の関数では、ALAsset 値を渡し、編集した画像を取得します ...:)
メタデータから編集された画像を取得するための上記のコード
フルスクリーン画像を使用すると、編集された画像も取得されます
ALAssetRepresentation *representation = [asset defaultRepresentation];
CGImageRef iref = [representation fullScreenImage];
UIImage *editedImage = [UIImage imageWithCGImage:iref];