如何使用kCIInputTransformKey在iOS

问题描述 投票:0回答:2

我创建了一个CIFilter AVMutableVideoComposition

由于它不支持过滤器和层的指示,我试图申请转换我需要直接在过滤器:

    filter.setValue(transform, forKey: kCIInputTransformKey)

transformCGAffineTransform

这引发异常

终止应用程序由于未捕获的异常“NSUnknownKeyException”,原因:“[setValue方法:forUndefinedKey:]:此类不是密钥值编码兼容的关键inputTransform。”

现在医生说

一种用于NSAffineTransform对象,指定变换应用的关键。

NSAffineTransform不iOS上存在。

如何使用CGAffineTransform或iOS,还是什么替代品可以取代它?

ios avfoundation core-image cgaffinetransform
2个回答
1
投票

你需要用在NSValue变换:

filter.setValue(NSValue(cgAffineTransform: transform), forKey: kCIInputTransformKey)

1
投票

我的解决办法是直接适用于过滤器的改造。

这可以通过将其应用到源图像来完成。

request.sourceImage.transformed(by: transform)

编辑:弗兰克指出;不是所有的过滤器支持转换!

© www.soinside.com 2019 - 2024. All rights reserved.