I\'m trying to get CIImage
from ImageView that display on the screen.
UIImage *image = myImageView.image;
convert image
Here is a complete code sample that I've used in my projects.
- (UIImage *)makeUIImageFromCIImage:(CIImage *)ciImage {
CIContext *context = [CIContext contextWithOptions:nil];
CGImageRef cgImage = [context createCGImage:ciImage fromRect:[ciImage extent]];
UIImage* uiImage = [UIImage imageWithCGImage:cgImage];
CGImageRelease(cgImage);
return uiImage;
}
CIImage
is basically a recipe for an image. You will run into problems if you try to directly convert from CIImage
to UIImage
. For example, calling
NSData * UIImageJPEGRepresentation (
UIImage *image,
CGFloat compressionQuality
);
will return nil
.
func toCIImage(image: UIImage) -> CIImage {
return image.CIImage ?? CIImage(CGImage: image.CGImage!)
}
func toUIImage(image: CIImage) -> UIImage {
return UIImage(CIImage: image)
}