How to Convert UIImage to CIImage and vice versa

前端 未结 8 1850
抹茶落季
抹茶落季 2020-12-12 19:06

I\'m trying to get CIImage from ImageView that display on the screen.

UIImage *image = myImageView.image;

convert image

相关标签:
8条回答
  • 2020-12-12 19:37

    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.

    0 讨论(0)
  • 2020-12-12 19:41
    func toCIImage(image: UIImage) -> CIImage {
        return image.CIImage ?? CIImage(CGImage: image.CGImage!)
    }
    
    func toUIImage(image: CIImage) -> UIImage {
        return UIImage(CIImage: image)
    }
    
    0 讨论(0)
提交回复
热议问题