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