我有一张灰度图像,想用它来绘制Cocoa控件。该图像具有各种灰度级别。在最暗的地方,我希望它以指定的深色色调进行绘制。在源图像为白色的地方,它应该是透明的。
基本上,我想复制在iPhone上看到的UINavigationBar中tintColor的行为。
到目前为止,我已经尝试了几个选项:
使用SourceOver组合将着色色彩绘制在灰度图像上 -> 这需要一个非不透明的着色色彩 -> 结果比预期的要暗得多
使用CIMultiplyCompositing CIFilter来着色图像 -> 我无法使用[CIImage drawAtPoint:fromRect:operation:fraction:]仅绘制图像的一部分,但同样适用于NSImage -> 我偶尔会遇到无法理解的崩溃
将灰度图像转换为掩模。即,黑色应该是不透明的。白色应该是透明的。灰色应该具有中间的alpha值。 -> 这似乎是最好的解决方案 -> 尽管我努力尝试,但无法实现