【问题标题】:QC Composition that will convert black and white pixels to two other colors将黑白像素转换为其他两种颜色的 QC 合成
【发布时间】:2011-03-14 22:55:47
【问题描述】:

我刚刚开始学习 Quartz Composer,我想创建的第一件事是最终可以在 Cocoa 应用程序中使用的合成,它可以接受黑白图像和两个 NSColor 并更改黑色像素到 NSColor #1,白色像素到 NSColor #2。

我花了一些时间与 QC 一起玩,但似乎无法弄清楚如何将所有部分组合在一起。

关于我唯一想到的是我需要使用图像过滤器模板,我确实看到有一个图像像素补丁可以从图像中获取像素......但是,我没有看到补丁设置一个像素。 Pixellate 补丁似乎也可能是必要的……不过,我不必担心它会产生无限尺寸的图像,因为我的源图像只会是固定大小的 PNG 图像。

【问题讨论】:

    标签: cocoa image filter composition quartz-composer


    【解决方案1】:

    看看False Color 补丁——它获取一张图像并用一对颜色重新映射它。

    事实上,由于False Color 补丁只是同名 (CIFalseColor) 的 Core Image 过滤器的包装,因此您完全可以在不涉及 Quartz Composer 的情况下执行此操作 --- 只需设置并应用CIFilter 实例到你的 NSImage。

    编辑 — 或编写您自己的 Core Image 过滤器,从以下内容开始:

    kernel vec4 remapBasedOnRed(sampler image,__color colorForDark,__color colorForLight)
    {
        return mix(colorForDark,colorForLight,sample(image, samplerCoord(image)).r);
    }
    

    ...获取输入图像(sample(image, samplerCoord(image)).r)的红色通道的亮度,并将其用作colorForDarkcolorForLight之间的线性插值系数。

    【讨论】:

    • 谢谢。我将不得不更详细地研究 CIFalseColor。但是,我仍然有兴趣学习如何从头开始编写 False Color 补丁……如果可能的话。我认为这可能是学习一些有趣技术的好方法。如果不可能,那将同样有趣。
    • +1 表示“编写自己的核心图像过滤器”建议。您不太可能能够构建一个 QC 合成,其中合成本身会转换每个单独的像素。 (嗯,这可能是可能的,但效率不高。)如果要转换图像,则需要使用将图像作为输入并生成图像作为输出的补丁。如果没有补丁可以满足您的需求,那么将其编写为 Core Image 过滤器并不难。
    猜你喜欢
    • 2019-12-13
    • 2018-09-28
    • 2018-12-23
    • 2020-05-25
    • 1970-01-01
    • 1970-01-01
    • 2017-08-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多