В то время как ответ Чансина Вана является действительно правильным, Apple говорит, что UIImage.CIImage не всегда будет работать. В частности, из PocketCoreImage:
// Create a CIImage from the _inputImage. While UIImage has a property returning
// a CIImage representation of it, there are cases where it will not work. This is the
// most compatible route.
_filteredImage = [[CIImage alloc] initWithCGImage:_inputImage.CGImage options:nil];
Apple также использует следующее, которое НЕ работает для меня:
[UIImage imageWithCIImage:_filteredImage]
Моя личная реализация, адаптированная из этот пост действительно работает для меня:
// result is a CIImage, output of my filtering.
// returnImage is (obviously) a UIImage that I'm going to return.
CIContext *context = [CIContext contextWithOptions:nil];
UIImage *returnImage =
[UIImage imageWithCGImage:[context createCGImage:result fromRect:result.extent]];