目标c – 着色灰度NSImage(或CIImage)

目标c – 着色灰度NSImage(或CIImage),第1张

概述我有一个灰度图像,我想用于绘制Cocoa控件。图像具有各种灰度级别。最黑暗的地方,我想让它画一个最暗的指定色调。我想要它是透明的,源图像是白色的。 基本上,我想重现在iPhone上的UINavigationBar中看到的tintColor的行为。 到目前为止,我已经探索了几个选择: >使用SourceOver组合在灰度图像上绘制色调 – >这需要非不透明色调 – >结果比所需要的要暗得多 >使用C 我有一个灰度图像,我想用于绘制Cocoa控件。图像具有各种灰度级别。最黑暗的地方,我想让它画一个最暗的指定色调。我想要它是透明的,源图像是白色的。

基本上,我想重现在iPhone上的UINavigationbar中看到的tintcolor的行为。

到目前为止,我已经探索了几个选择:

>使用SourceOver组合在灰度图像上绘制色调
– >这需要非不透明色调
– >结果比所需要的要暗得多
>使用CIMultiplyCompositing CIFilter来对图像进行着色
– >我不能[CIImage drawAtPoint:fromrect:operation:fraction:]只画出部分图像。与NSImage相同的作品
– >我偶然发生的事故,我无法理解
>将灰度图像转换为蒙版。即黑色应该是不透明的。白色应该是透明的。灰色应具有中间α值。
– >这似乎是最好的解决方案
– >尽可能的尝试,我无法实现这一点。

解决方法 上面的解决方案对我来说没有效果。但是这个更容易的解决方案对我来说非常棒

- (NSImage *)imageTinteDWithcolor:(NScolor *)tint{    NSImage *image = [self copy];    if (tint) {        [image lockFocus];        [tint set];        NSRect imageRect = {NSZeroPoint,[image size]};        NSRectFillUsingOperation(imageRect,NSCompositeSourceAtop);        [image unlockFocus];    }    return image;}
总结

以上是内存溢出为你收集整理的目标c – 着色灰度NSImage(或CIImage)全部内容,希望文章能够帮你解决目标c – 着色灰度NSImage(或CIImage)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1040961.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存