【发布时间】:2016-01-01 10:03:08
【问题描述】:
我正在使用 Swift 进行一些视频处理。升级到 El Capitan(和 Swift 2)后,我的代码坏了。我将错误追溯到 CIFilter 函数 CIColorClamp。该函数本应钳制像素值,但实际上破坏了图像范围。
let _c:CGFloat = 0.05
let minComp = CIVector(x:_c, y:_c, z:_c, w: 1)
let maxComp = CIVector(x:1, y:1, z:1, w: 1)
let clamp: CIFilter = CIFilter(name: "CIColorClamp")!
print("clamp-in \(image.extent)")
clamp.setDefaults()
clamp.setValue(image, forKey: kCIInputImageKey)
clamp.setValue(minComp, forKey: "inputMinComponents")
clamp.setValue(maxComp, forKey: "inputMaxComponents")
print("clamp-out \(clamp.outputImage!.extent)")
上面的代码产生了输出:
> clamp-in (6.0, 6.0, 1268.0, 708.0)
CoreAnimation: Warning! CAImageQueueSetOwner() is deprecated and does nothing. Please stop calling this method.
> clamp-out (-8.98846567431158e+307, -8.98846567431158e+307, 1.79769313486232e+308, 1.79769313486232e+308)
此调用会产生内部警告这一事实也不能增强信心!
谁能确认这种行为?我做错了什么?
【问题讨论】:
标签: macos swift cocoa core-image osx-elcapitan