You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift中用CIFilter合并多CIImage及filterWithName对应API咨询

在Swift中用CIFilter合并两张CIImage的方案

关于教程语言与API对应

你猜测的没错,那篇教程确实是用Objective-C写的。Swift里对应Objective-C的filterWithName:的API是**CIFilter(name:)**初始化方法,直接传入滤镜名称即可创建滤镜实例。

合并两张CIImage的具体实现

要合并两张CIImage,最常用的是CISourceOverCompositing滤镜(对应常规的“上层覆盖下层”混合逻辑),示例代码如下:

// 假设你已获取底层视频帧的CIImage:baseImage,上层图片的CIImage:overlayImage
guard let compositeFilter = CIFilter(name: "CISourceOverCompositing") else {
    // 滤镜创建失败的处理逻辑
    return
}

// 设置滤镜参数:inputBackgroundImage为底层图,inputImage为上层图
compositeFilter.setValue(baseImage, forKey: kCIInputBackgroundImageKey)
compositeFilter.setValue(overlayImage, forKey: kCIInputImageKey)

// 获取合成后的CIImage
guard let outputImage = compositeFilter.outputImage else {
    // 合成失败的处理逻辑
    return
}

如果需要其他混合效果,可以替换对应的滤镜名称,比如CISourceInCompositing、CISourceOutCompositing等,具体可查阅Core Image官方滤镜列表。

内容的提问来源于stack exchange,提问作者Yuuu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 04:35:28