【问题标题】:How can I change hue of an UIImage programmatically only in few parts?如何仅在几个部分以编程方式更改 UIImage 的色调?
【发布时间】:2012-08-10 00:27:29
【问题描述】:

如何以编程方式仅在几个部分更改 UIImage 的色调?我已经关注了这个链接

How to programmatically change the hue of UIImage?

并在我的应用程序中使用了相同的代码。它工作正常,但完整的图像色调正在改变。根据我的要求,我只想更改上面快照中的树颜色。我怎样才能做到这一点?

【问题讨论】:

    标签: ios iphone ipad colors


    【解决方案1】:

    这是一个使用掩码的更普遍问题的具体案例。我假设您有某种方法可以知道“树”部分中有哪些像素,哪些不是。 (如果不是,那是另一个问题/问题)。

    如果是这样,首先将原始内容绘制到结果上下文中,然后创建一个遮罩(参见此处:http://mobiledevelopertips.com/cocoa/how-to-mask-an-image.html),并使用代表树的遮罩绘制更改后的色调版本。

    【讨论】:

    • 我不知道接下来会出现哪个图像(树)。所以我对像素一无所知。在这种情况下,如何仅更改树的色调?
    • 假设如果我以人脸为例,我怎样才能只改变他/她的肤色?
    • 我想您可以使用统计数据来找到最主要的颜色,并将色调变化应用于某些颜色范围/或除主要颜色范围之外的所有内容
    • @Dee 就像 quixoto 提到的那样,找到要处理的图片的特定区域确实是一个非常难以解决的问题。有时,在简单的情况下,用于查找要被遮罩的像素的类似洪水填充的算法是很好的——通常是不够的。您的问题归结为至少两个子问题。 1. 创建一个蒙版(需要找到要处理的区域),2. 更改未蒙版部分的色调(您已经解决了这个问题 - 至少几乎解决了)。
    【解决方案2】:

    我建议您特别查看 CoreImage API 和 CIColorCube 或 CIColorMap 过滤器。现在如何定义颜色立方体或颜色图才是真正的魔力所在。您需要转换树的色调(棕色等),但这显然会转换所有的棕色,而不仅仅是您的树。

    【讨论】:

      猜你喜欢
      • 2012-07-18
      • 1970-01-01
      • 2019-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多