共用方式為


視訊色彩來源

[與此頁面相關聯的功能,DirectShow是舊版功能。 它已被 MediaPlayer、imfMediaEngine 取代,並在媒體基金會 音訊/視訊擷取。 這些功能已針對 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>