Поделиться через


Метод IMixerPinConfig::SetColorKey (mpconfig.h)

[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует, чтобы новый код использовал MediaPlayer, IMFMediaEngine и аудио- и видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, использующий устаревшие API, чтобы по возможности использовать новые API.]

Метод SetColorKey задает цветной ключ, используемый видеопотоком.

Синтаксис

HRESULT SetColorKey(
  [in] COLORKEY *pColorKey
);

Параметры

[in] pColorKey

Указатель на структуру COLORKEY .

Возвращаемое значение

Возвращает значение HRESULT.

Комментарии

Термин цветной ключ имеет разные значения в зависимости от того, к какому потоку он относится. Ключ цвета основного потока относится к целевому цвету, используемому поверхностью наложения. Клавиша цвета дополнительного потока ссылается на исходный цвет, используемый при разрезе с поверхности вне экрана на основную поверхность.

Приложения должны задать для ключа цвета основной булавки неясный цвет (некоторые цвета, которые, по всей вероятности, не будут присутствовать на рабочем столе). Фильтры микшера наложения попытаются выбрать неясный цвет, но если приложение знает, что указанный цвет является частью какого-то другого содержимого, приложение должно изменить его.

Чтобы сделать поток прозрачным и включить нереектангулярные изображения, можно задать цветной ключ во вторичном потоке. Например, если дополнительный поток является текстом с закрытыми субтитрами, то декодер текста с закрытыми субтитрами должен закрасить сплошной цвет в фоновом режиме, а затем задать для соответствующего маркера соответствующий цвет. Это гарантирует, что будут переданы все пиксели, кроме тех, которые указаны в цветовом ключе. Если это возможно, приложения должны задать для дополнительного потока тот же цвет, что и для основного потока, чтобы обеспечить небольшое преимущество в производительности.

Задание этого значения в основном потоке задает целевой цветной ключ, используемый поверхностью наложения. По умолчанию ключ цвета назначения используется в качестве ключа цвета для всех прозрачных (вторичных) потоков.

Допустимые аргументы для параметра pColorKey включают CK_INDEX, если для режима отображения видео задано 256 цветов, и CK_RGB, если для режима отображения видео задана более высокая глубина цвета, например hi-color, 24-разрядный или 32-разрядный. Вместе с CK_INDEX необходимо указать флаг CK_RGB. Если CK_INDEX флаг установлен, индекс будет использоваться в качестве индекса палитры в цветовом режиме 256. Но вы должны предоставить COLORREF с допустимым цветом true, чтобы при изменении режима отображения на лету DirectShow можно было переключиться на использование указанного цвета true. Это связано с тем, что ряд истинных цветов можно сопоставить с одним индексом палитры, но переход от индекса палитры к истинному цвету не является "один к одному".

Примечание В настоящее время этот метод реализуется только для основного входного контакта.
 

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header mpconfig.h
Библиотека Strmiids.lib

См. также раздел

Коды ошибок и успешного выполнения

Интерфейс IMixerPinConfig

IMixerPinConfig::GetColorKey