CIFilter + UIImage + alpha蒙版

我正在使用这样的解决方案用一些alpha绘图掩盖我的UIImage : 掩盖UIImage

问题是后来我想申请一些CIFilters 。 但是,当我更改filter的值时,我的alpha会从UIImage丢失。 每次修改CIFilter后,是否必须重新应用alpha通道输出图像? 这肯定会使这个过程慢得多。

代码示例:(每个新段落都是另一种方法)

 // set the image _image = [incomeImage imageWithMask:_mask]; // imageWithMask from method from link [_myView.imageView setImage:_image]; // calculate ciimages _inputCIImage = [[CIImage alloc] initWithCGImage:_image.CGImage options:nil]; _myView.imageView.image = _image; _currentCIImage = _inputCIImage; // change value in filter [filter setValue:@(0.2f) forKey:@"someKey"]; [filter setValue:_inputCIImage forKey:kCIInputImageKey]; _currentCIImage = [filter outputImage]; CGImageRef img = [_context createCGImage:_currentCIImage fromRect:[_currentCIImage extent]]; UIImage *newImage = [UIImage imageWithCGImage:img]; 

你只能使用CIFilters来做到这一点。 您可以使用CIBlendWithMask CIFilter而不是使用imageWithMask。 Apple CIFilter参考