ios - CIFilter + UIImage + alpha 蒙版

标签 ios objective-c mask cifilter

我正在使用这样的解决方案来掩盖我的 UIImage有一些阿尔法图:
masking an UIImage

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

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

// 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 来做到这一点。而不是使用 imageWithMask您可以使用 CIBlendWithMask CI过滤器。 Apple CIFilter Reference

关于ios - CIFilter + UIImage + alpha 蒙版,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18273724/

相关文章:

ios - WKInterfaceTable Minor Scale 是如何工作的?一旦设置值,它就会被忽略

python - 将 numpy 数组分配给 pandas 掩码

java - 设置 java gui 输入的掩码百分比

ios - App Store Distribution Certificate - 重命名证书公用名

ios - 我应该为远程应用程序使用哪种观察者模式?

ios - Objective-c iOS 原型(prototype)单元重绘后恢复

ios - 当格式说明符错误地传递给方法时如何发出警告

进行操作时的 ExtJS 掩码面板

ios - 如何通过应用程序扩展 (iWatch) 取消预定的本地通知(在 iPhone 上)

ios - iOS 中的手电筒闪光灯