我是一个相对较新的 Swift 开发人员,我正在使用 CILinearGradient CIFilter 生成渐变,然后我可以将其用作背景和纹理。我对它的工作方式非常满意,直到我意识到从中产生的梯度似乎严重偏向远离光谱的黑端。
起初我以为我疯了,但后来我创建了纯黑到白和白到黑的渐变,并将它们并排放置在屏幕上。我截取了屏幕截图并将其带入了 Photoshop。然后我查看了颜色值。您可以看到每个渐变的末端对齐(一端为纯黑色,另一端为纯白色,另一端则相反),但每个渐变的中间点明显偏向黑色端。
这是 CIFilter 的问题还是我做错了什么?感谢任何对此有任何见解的人!
这是我的代码:
func gradient2colorIMG(UIcolor1: UIColor, UIcolor2: UIColor, width: CGFloat, height: CGFloat) -> CGImage? {
if let gradientFilter = CIFilter(name: "CILinearGradient") {
let startVector:CIVector = CIVector(x: 0 + 10, y: 0)
let endVector:CIVector = CIVector(x: width - 10, y: 0)
let color1 = CIColor(color: UIcolor1)
let color2 = CIColor(color: UIcolor2)
let context = CIContext(options: nil)
if let currentFilter = CIFilter(name: "CILinearGradient") {
currentFilter.setValue(startVector, forKey: "inputPoint0")
currentFilter.setValue(endVector, forKey: "inputPoint1")
currentFilter.setValue(color1, forKey: "inputColor0") …Run Code Online (Sandbox Code Playgroud)