CoreImageフィルタチェーンを作成し、アルファまたは不透明度設定で個々のエフェクトを合成してチェーン内の各フィルタの「強度」を制御できるようにするには、私は、ドキュメント内でアルファまたは不透明と合成する方法を見ていません。Xcode:コア画像を使用したアルファとの合成
私はコア画像フィルタチェーンから外して、コアグラフィックスコンテキストをコンポジットにすることができました。
CoreImageフィルタチェーンを作成し、アルファまたは不透明度設定で個々のエフェクトを合成してチェーン内の各フィルタの「強度」を制御できるようにするには、私は、ドキュメント内でアルファまたは不透明と合成する方法を見ていません。Xcode:コア画像を使用したアルファとの合成
私はコア画像フィルタチェーンから外して、コアグラフィックスコンテキストをコンポジットにすることができました。
このようにして終了しました。この回答からコード:https://stackoverflow.com/a/3188761/1408546
UIImage *bottomImage = inputImage;
UIImage *image = filterOutput;
CGSize newSize = CGSizeMake(inputImage.size.width, inputImage.size.height);
UIGraphicsBeginImageContext(newSize);
[bottomImage drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
[image drawInRect:CGRectMake(0,0,newSize.width,newSize.height) blendMode:kCGBlendModeNormal alpha:_opacity];
UIImage *blendedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
CIColorMatrixフィルタは、背景画像の上にあなたが複合できCIImageのアルファ成分を変更するために使用することができる。
CIImage *overlayImage = … // from file, CGImage etc
CIImage *backgroundImage = … // likewise
CGFloat alpha = 0.5;
CGFloat rgba[4] = {0.0, 0.0, 0.0, alpha};
CIFilter *colorMatrix = [CIFilter filterWithName:@"CIColorMatrix"];
[colorMatrix setDefaults];
[colorMatrix setValue:overlayImage forKey: kCIInputImageKey];
[colorMatrix setValue:[CIVector vectorWithValues:rgba count:4] forKey:@"inputAVector"];
CIFilter *composite = [CIFilter filterWithName:@"CISourceOverCompositing"];
[composite setDefaults];
[composite setValue:colorMatrix.outputImage forKey: kCIInputImageKey];
[composite setValue:backgroundImage forKey: kCIInputBackgroundImageKey];
UIImage *blendedImage = [UIImage imageWithCIImage:composite.outputImage];