如何着色矢量NSImage(PDF)

时间:2016-04-09 19:38:06

标签: macos pdf nsimage tint

我的所有图像都是XCAssets中的单色PDF。我想在运行时为它们着色,但我无法在NSImage中找到任何色彩属性。

当我使用 NSRectFillUsingOperation 时,它会对图片进行栅格化处理,所以我宁愿避开它。

总结如何在不进行光栅化的情况下使用RGB对矢量NSImages进行着色?

2 个答案:

答案 0 :(得分:1)

我最终设置了一个名为" CIFalseColor"的CIFilter。在IB的按钮上,然后在运行时我用:

控制颜色
button.contentFilters[0].setValue(myCIColor, forKey: "inputColor1")

如果你的图像是白色,inputColor2控制黑色,这是有效的,所以我认为灰度图像是两者之间的混合。

它不是最好的,因为它会损害应用程序的性能,但它会发生,直到有人找到更好的方式。

答案 1 :(得分:0)

如果使用的是Core Graphics上下文,则可以使用CGContextSetBlendMode为重叠的对象指定混合模式。这可以采用代表PDF规范中每个标准混合模式的值,例如差异,相乘,叠加,屏幕等

然后使用CGContextFillRect以所需的颜色创建一个色调框。