視訊色彩來源
[與此頁面 相關的功能 DirectShow是舊版功能。 它已被 MediaPlayer、 IMFMediaEngine和 Media Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayer、 IMFMediaEngine 和 音訊/視訊擷取 ,而不是 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>