Эффект цветовой матрицы
Используйте эффект цветовой матрицы для изменения значений RGBA растрового изображения.
Этот эффект можно использовать для выполнения указанных ниже действий.
- Удаление цветового канала из изображения.
- Уменьшите цвет на изображении.
- Переключение цветовых каналов.
- Объединение цветовых каналов.
Многие встроенные эффекты — это специализации цветовой матрицы, оптимизированные для предполагаемого использования эффектов. Примеры включают насыщенность, поворот оттенка, сепию, температуру и оттенок.
CLSID для этого эффекта CLSID_D2D1ColorMatrix.
Пример изображения
В этом примере показаны входные и выходные изображения эффекта цветовой матрицы, который переключает красный и синий каналы.
До |
---|
После |
ComPtr<ID2D1Effect> colorMatrixEffect;
m_d2dContext->CreateEffect(CLSID_D2D1ColorMatrix, &colorMatrixEffect);
colorMatrixEffect->SetInput(0, bitmap);
D2D1_MATRIX_5X4_F matrix = D2D1::Matrix5x4F(0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0);
colorMatrixEffect->SetValue(D2D1_COLORMATRIX_PROP_COLOR_MATRIX, matrix);
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(colorMatrixEffect.Get());
m_d2dContext->EndDraw();
Этот эффект умножает значения RGBA изображения на матрицу основного столбца 5x4, как показано в этом уравнении.
Этот эффект работает с прямыми и предварительно подготовленными альфа-изображениями.
Свойства эффекта
Отображаемое перечисление имен и индексов | Описание |
---|---|
ColorMatrix D2D1_COLORMATRIX_PROP_COLOR_MATRIX |
Матрица значений с плавающей точкой 5x4. Элементы в матрице не являются ограниченными и не являются унитарными. По умолчанию используется матрица удостоверений. Тип D2D1_MATRIX_5X4_F. Значение по умолчанию — Matrix5x4F(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0). |
AlphaMode D2D1_COLORMATRIX_PROP_ALPHA_MODE |
Альфа-режим выходных данных. Дополнительные сведения см. в разделе Альфа-режимы . Тип D2D1_COLORMATRIX_ALPHA_MODE. Значение по умолчанию — D2D1_COLORMATRIX_ALPHA_MODE_PREMULTIPLIED. |
ClampOutput D2D1_COLORMATRIX_PROP_CLAMP_OUTPUT |
Указывает, зажимает ли эффект значения цвета в диапазоне от 0 до 1, прежде чем эффект передает значения следующему эффекту в графе. Эффект зажимает значения до того, как он предумультирует альфа- . Если для этого параметра задано значение TRUE, эффект будет зажимать значения. Если задать для этого параметра значение FALSE, эффект не будет зажимать значения цвета, но другие эффекты и выходная поверхность может зажать значения, если они не имеют достаточно высокой точности. Тип — BOOL. Значение по умолчанию — FALSE. |
Альфа-режимы
Имя | Описание |
---|---|
D2D1_COLORMATRIX_ALPHA_MODE_PREMULTIPLIED | Эффект отменяет предумультирование входных данных, применяет цветовую матрицу и предумножет выходные данные. |
D2D1_COLORMATRIX_ALPHA_MODE_STRAIGHT | Эффект применяет цветовую матрицу непосредственно к входным данным и не изменяет выходные данные. |
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 8 и обновление платформы для Windows 7 [классические приложения | Приложения Магазина Windows] |
Минимальная версия сервера | Windows 8 и обновление платформы для Windows 7 [классические приложения | Приложения Магазина Windows] |
Заголовок | d2d1effects.h |
Библиотека | d2d1.lib, dxguid.lib |