(本文未经许可禁止转载)

           

Ae默认提供的方法只支持获取8bit,即每通道0~255种数据的颜色信息。这种数据在8bpc下没有任何问题,但是在16bpc和32bpc下就有很多瑕疵,会与自己算得颜色有些许误差。所以我们往往需要非常精确地颜色信息来描述客户输入。

来自官方的吐槽

下面是官方文档的原文(摘自AE SDK CC2017 文档):

We have something to admit to you; for years, even though we’ve given you 8 bit color
values, we’ve internally used floating point representations behind your back. That’s right,
even with over-bright colors, we’d only ever tell you ‘255, 255, 255’. Yeah, right. Well, we
can’t live the lie any longer! Given a color parameter (passed to you by After Effects in your effect’s parameter array), this function returns a floating point representation, including any
high dynamic range component.

所以官方自己都觉得0~255是个问题。所以提供了这样一个获取更精确颜色信息的方法。

奇妙获取方式

以下是PixelsWorld中服役的获取颜色参数信息的代码

AEGP_SuiteHandler suites(in_data->pica_basicP);
PF_PixelFloat pfm;
ERR(suites.ColorParamSuite1()->PF_GetFloatingPointColorFromColorDef(
    in_data->effect_ref,
    params[SKELETON_COLOR_COLOR_PARAMETER_0 + i],
    &pfm
));
       

(本文未经许可禁止转载)

   

发表回复