我的所有图像都是XCAssets中的单色PDF。我想在运行时为它们着色,但我无法在NSImage中找到任何色彩属性。
当我使用 NSRectFillUsingOperation 时,它会对图片进行栅格化处理,所以我宁愿避开它。
总结如何在不进行光栅化的情况下使用RGB对矢量NSImages进行着色?
答案 0 :(得分:1)
我最终设置了一个名为" CIFalseColor"的CIFilter。在IB的按钮上,然后在运行时我用:
控制颜色button.contentFilters[0].setValue(myCIColor, forKey: "inputColor1")
如果你的图像是白色,inputColor2控制黑色,这是有效的,所以我认为灰度图像是两者之间的混合。
它不是最好的,因为它会损害应用程序的性能,但它会发生,直到有人找到更好的方式。
答案 1 :(得分:0)
如果使用的是Core Graphics上下文,则可以使用CGContextSetBlendMode
为重叠的对象指定混合模式。这可以采用代表PDF规范中每个标准混合模式的值,例如差异,相乘,叠加,屏幕等
然后使用CGContextFillRect
以所需的颜色创建一个色调框。