我有一个灰度图像,我想用它来绘制 Cocoa 控件。图像具有各种灰度等级。在最暗的地方,我希望它绘制最暗的指定色调。我希望它在源图像为白色的地方是透明的。
基本上,我想重现 iPhone 上 UINavigationBar 中看到的 tintColor 的行为。
到目前为止,我已经探索了几种选择:
使用 SourceOver 合成在灰度图像上绘制色调颜色 -> 这需要一个不透明的色调颜色 -> 结果比预期的要暗得多
使用 CIMultiplyCompositing CIFilter 为图像着色 - > 我不能 [CIImage drawAtPoint:fromRect:operation:fraction:] 仅绘制图像的一部分。同样适用于 NSImage -> 我偶尔会遇到我无法理解的崩溃
将灰度图像转换为蒙版。即黑色应该是不透明的。白色应该是透明的。灰色应该有中间的 alpha 值。-> 这似乎是最好的解决方案 -> 尽我所能,我无法做到这一点。