1
我使用这样的解决方案,以掩盖我UIImage
一些阿尔法绘图: masking an UIImageCIFilter +的UIImage +阿尔法遮掩
的问题是,后来我想申请一些CIFilters
。但是,当我更改过滤器的值时,我的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];
它不应该在技术上迷路。向我们显示代码? – geekchic
@Nikhita添加了最重要的代码部分。 – Vive
您只能使用CIFilters来做到这一点。您可以使用'CIBlendWithMask' CIFilter来代替使用imageWithMask。 –