gpt4 book ai didi

ios - 在 swift 中使用 GPUImage 链接过滤器

转载 作者:搜寻专家 更新时间:2023-11-01 06:10:07 25 4
gpt4 key购买 nike

(Stack Overflow 的第一篇文章 - 所以,嗨“紧张地挥手”)

我使用 GPUImage 库取得了一些成功 - 并且已经成功地使用 swift 获得了一个在静态图像上工作的简单过滤器。

但是我在尝试将多个过滤器链接在一起时遇到了问题。库中包含的示例似乎没有涵盖这一点。有很多 objective C 示例,但不是 swift。

谁能举例说明如何申请:

2 个混合滤镜加上亮度、对比度和饱和度滤镜到单个静态图像?

我认为这足以涵盖 Swift 中该库的大部分用途。谢谢。

最佳答案

在 Swift 中分配和链接过滤器与在 Objective-C 中一样,只是语法转换。例如,以下是如何将两个静止图像输入链接到 Objective-C 中的混合滤镜,然后将该混合的结果定向到对比度滤镜,并捕获最终图像:

GPUImageOverlayBlendFilter *blendFilter = [[GPUImageOverlayBlendFilter alloc] init];
[stillImageSource1 addTarget:blendFilter];
[stillImageSource2 addTarget:blendFilter];

GPUImageContrastFilter *contrastFilter = [[GPUImageContrastFilter alloc] init];
[blendFilter addTarget:contrastFilter];

[contrastFilter useNextFrameForImageCapture];
[stillImageSource1 processImage];
[stillImageSource2 processImage];

UIImage *currentFilteredImage = [contrastFilter imageFromCurrentFramebuffer];

这在 Swift 中是等价的:

let blendFilter = GPUImageOverlayBlendFilter()
stillImageSource1.addTarget(blendFilter)
stillImageSource2.addTarget(blendFilter)

let contrastFilter = GPUImageContrastFilter()
blendFilter.addTarget(contrastFilter)

contrastFilter.useNextFrameForImageCapture()
stillImageSource1.processImage()
stillImageSource2.processImage()

let currentFilteredImage = contrastFilter.imageFromCurrentFramebuffer()

如您所见,这都是语法,与您实际调用事物的方式没有什么不同。你可以使用 Objective-C 示例代码作为你想做的事情的基础,然后用你的 Swift 等价物重写它。我随框架提供的 Swift 示例非常简单(在实时视频上使用单个过滤器的微型应用程序)或相当复杂(我的测试用例应用程序执行框架中的每个过滤器和操作)。

关于ios - 在 swift 中使用 GPUImage 链接过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27545983/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com