ios - 我想在不使用任何第三方框架的情况下将过滤器应用于录制的视频。我曾尝试将 CIfilter 用于 CAlayer 但它不起作用

标签 ios objective-c calayer core-image cifilter

我想在不使用任何第三方框架的情况下将过滤器应用于预录视频我该怎么做。我曾尝试将 CIfilter 用于 CAlayer 但它不起作用。这是我的代码:

 CALayer *effectlayer=[CALayer layer];
    CIFilter *filter = [CIFilter filterWithName:@"CISepiaTone"
                                  keysAndValues: kCIInputImageKey,effectlayer,
                        @"inputIntensity", @.5, nil];


    [effectlayer setFilters:[NSArray arrayWithObjects:filter, nil]];

    CALayer *parentLayer = [CALayer layer];
    CALayer *videoLayer=[CALayer layer];
    parentLayer.frame = CGRectMake(0, 0, size.width, size.height);
    videoLayer.frame = CGRectMake(0, 0, size.width, size.height);
    [parentLayer addSublayer:videoLayer];
    [parentLayer addSublayer:overlayLayer];

    [parentLayer addSublayer:overlayLayero];
    [parentLayer addSublayer:effectlayer];

最佳答案

这是我的答案代码:

// 1 - set up the overlay
CALayer *overlayLayer = [CALayer layer];
UIImage *overlayImage = nil;


overlayImage = [UIImage imageNamed:@"your Image name"];


[overlayLayer setContents:(id)[overlayImage CGImage]];
overlayLayer.frame = CGRectMake(0, 0, size.width, size.height);
[overlayLayer setMasksToBounds:YES];

// 2 - set up the parent layer
CALayer *parentLayer = [CALayer layer];
CALayer *videoLayer = [CALayer layer];
parentLayer.frame = CGRectMake(0, 0, size.width, size.height);
videoLayer.frame = CGRectMake(0, 0, size.width, size.height);
[parentLayer addSublayer:videoLayer];
[parentLayer addSublayer:overlayLayer];

// composiontion is instance of your AVMutableVideoComposition
composition.animationTool = [AVVideoCompositionCoreAnimationTool
                             videoCompositionCoreAnimationToolWithPostProcessingAsVideoLayer:videoLayer inLayer:parentLayer];

关于ios - 我想在不使用任何第三方框架的情况下将过滤器应用于录制的视频。我曾尝试将 CIfilter 用于 CAlayer 但它不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31108731/

相关文章:

ios - 我们如何在 xCode iOS 中隐藏敏感数据

ios - 了解堆栈跟踪

ios - UILabel autoLayout 无法正常工作

objective-c - 在 iOS 中使用混合模式堆叠 UIView

ios - NSLocalizedString 只检索键,不检索 Localizable.strings 中的值(IOS)

iphone - 在 'splitViewBarButtonItem' 类型的对象上找不到属性 'id<UISplitViewControllerDelegate>'

iphone - 使用 NSDictionary (userInfo) 调用方法

objective-c - 从 AppDelegate 推送到特定的 viewController

ios - CAayer - (void)drawInContext :(CGContextRef)ctx is never called

ios - 我如何为 borderWidth 自定义所有 UITextField 外观?