我在Swift上与GPUImage斗争了几天,我认为是时候寻求帮助了,或者至少是一个线索。
我尝试做的是用GPUImage调整NSImage的曝光,但到目前为止,我在这方面失败了。
我的代码适用于像SmoothToonFilter这样的滤镜,但我似乎无法为ExposureAdjustment滤镜设置曝光参数……我也不知道怎么解决这个问题。
以下是smoothSmoothToonFilter的工作原理:
filteredImage = filteredImage?.filterWithOperation(GPUImage.SmoothToonFilter()
..而这不是:
filteredImage = filteredImage?.filterWithOperation(GPUImage.ExposureAdjustment() )
它也不接受我这样做:
filteredImage = filteredImage?.filterWithOperation(GPUImage.ExposureAdjustment(5.0) )
或者这样:
filteredImage = filteredImage?.filterWithOperation(GPUImage.ExposureAdjustment(exposure: 5.0) )
虽然GPUImage项目中的ExposureAdjustment.swift (无论如何对我而言)清楚地表明了有一种方法可以设置此…
public class ExposureAdjustment: BasicOperation {
public var exposure:Float = 0.0 { didSet { uniformSettings["exposure"] = exposure } }
public init() {
super.init(fragmentShader:ExposureFragmentShader, numberOfInputs:1)
({exposure = 0.0})()
}
}我知道这个问题完全是我缺乏知识的错,但我真的试着自己解决这个问题,直到它让我发疯……我真的很感谢你的帮助,这样我就可以继续我的Swift实验了。提前感谢!
发布于 2020-11-10 14:16:09
这一行:public var exposure:Float...表示ExposureAdjustment类上的一个属性。您可以通过拆分过滤器的初始化并在新语句中设置它来设置它。如下所示:
let exposureFilter = GPUImage.ExposureAdjustment()
exposureFilter.exposure = 5.0
filteredImage = filteredImage?.filterWithOperation(exposureFilter)https://stackoverflow.com/questions/64763696
复制相似问题