共用方式為


視訊色彩來源

[與此頁面 相關的功能 DirectShow是舊版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayerIMFMediaEngine音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議盡可能重寫使用舊版 API 的現有程式碼,以使用新的 API。]

注意

[已被取代。 此 API 可能會從未來的 Windows 版本中移除。]

 

影片色彩來源會建立純色的連續視訊影像。

類別識別碼 (CLSID) : {0CFDD070-581A-11D2-9EE6-006008039E37}

CLSID 變數名稱: CLSID_ColorSource

屬性

屬性 類型 預設 描述
「Color」 DWORD 0 指定要產生的色彩。 請參閱<備註>。

 

備註

視訊色彩來源會與來源物件搭配使用。 首先,建立新的來源物件。 然後呼叫 IAMTimelineObj::SetSubObjectGUID 方法,將來源物件的子物件 GUID 設定為 CLSID_ColorSource。

若要設定色彩,請建立 Property Setter 物件,並在時間零套用 「Color」 屬性。 此屬性的值是格式為 0xAARRGGBB的十六進位數位,其中 AA 是 Alpha 值, RR 是紅色值, GG 是綠色值,而 BB 是藍色值。 Alpha 值的範圍從0x00 (透明) 到0xFF (不透明) 。 屬性是靜態的,而且必須在時間零套用。

如果您未指定 Alpha 值,則預設為零 (透明) 。 在 32 位色彩視訊專案中,這會導致使用 Alpha 將視訊色彩來源轉譯為完全透明的轉換或效果。 若要安全,請一律指定 Alpha。 例如,不透明的黑色 是0xFF000000

下列程式碼範例示範如何使用這個物件。 如需使用 IPropertySetter的詳細資訊,請參閱 設定效果和轉換的屬性

DWORD           dwYellow = 0xFFFF00;
IAMTimelineObj  *pSource = NULL;

// Create the source.
HRESULT hr = pTimeline->CreateEmptyNode(&pSource, TIMELINE_MAJOR_TYPE_SOURCE);
if (SUCCEEDED(hr))
{
    hr = pSource->SetStartStop(0, 50000000);
}

if (SUCCEEDED(hr))
{
    hr = pSource->SetSubObjectGUID(CLSID_ColorSource);
}

// Create a property setter.
if (SUCCEEDED(hr))
{
    IPropertySetter *pProp = NULL;
    
    hr = CoCreateInstance(CLSID_PropertySetter, NULL, CLSCTX_INPROC_SERVER, 
        IID_PPV_ARGS(&pProp));

    if SUCCEEDED(hr))
    {
        // Set the color.    
        DEXTER_PARAM param;
        DEXTER_VALUE val;

        param.Name = SysAllocString(OLESTR("Color"));
        param.dispID = 0;
        param.nValues = 1;

        if (param.Name == NULL)
        {
            hr = E_OUTOFMEMORY;
        }
        else
        {
            val.v.vt = VT_I4;
            val.v.lVal = dwYellow;
            val.rt = 0;  // Time must be zero.
            val.dwInterp = DEXTERF_JUMP;

            hr = pProp->AddProp(param, &val);
            
            SysFreeString(param.Name);
        }

        if (SUCCEEDED(hr))
        {
            hr = pSource->SetPropertySetter(pProp); 
        }
        pProp->Release();
    }
}

下列範例顯示上一個範例中建立之 物件的 XML 表示。 在此情況下,param元素不支援線性元素,因為 物件不支援動態屬性:

<clip start="0" stop="5" clsid="{0CFDD070-581A-11D2-9EE6-006008039E37}">
    <param name="Color" value="16776960"/>
</clip>