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。 –