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