【问题标题】:Flipping colors of image to its equivalent at the opposite side of spektrum在 spektrum 的另一侧将图像的颜色翻转到其等效颜色
【发布时间】:2021-09-08 19:20:04
【问题描述】:

有没有办法将图像的颜色翻转到 spektrum 另一侧的等效颜色。就像你有白色一样,它会变成黑色,蓝色变成黄色等。谢谢你的回答。

【问题讨论】:

  • 您如何定义“光谱的另一端”?一种方法可能是从 255 中减去每个单独的 RGB 分量(如果您的颜色是 RGB 格式)。我猜这会给出白色 -> 黑色和蓝色 -> 黄色。
  • 是的,我正在考虑类似的事情,但我没有这方面的经验,所以我宁愿问,但感谢您的回复:)
  • 好吧,我知道一些关于色标的事情,但(不幸的是)对 C# 知之甚少,而对 Unity 一无所知。 :-)
  • C# 和 GDI+:使用 ColorMatrix 轻松完成(一旦你真正知道你想要什么)。
  • 请使用正确的标签!请注意,unityscript 是或更好的是曾经是一种 JavaScript 风格,类似于早期 Unity 版本中使用的自定义语言,现在早已弃用了!

标签: c# unity3d


【解决方案1】:

这很简单。

首先,我们需要讨论什么是反色。

一般来说, 相反色表示互补色

Wiki, Complementary Color

有关详细信息,请参阅 Wikipedia 文章。

简而言之,互补色是两种颜色,混合后会产生完美的白色

在 RGB 颜色(0~255) 中,白色为 (255, 255, 255)。

例如,假设您要查找蓝色的补色。蓝色的 RGB 颜色是 (0, 0, 255) ,所以它的互补 RGB 值是 (255, 255, 0), yellow .

让我们用 UnityScript 表达我到目前为止所说的话。

注意:统一使用归一化范围。(如0-1)

    private Color GetOppositeColor(Color color)
    {
        return new Color(1f - color.r, 1f - color.g, 1f - color.g);
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-24
    • 2015-12-19
    • 2013-08-15
    • 2016-06-17
    • 2013-05-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多