Эффект цветовой матрицы
Используйте эффект цветовой матрицы для изменения значений 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, 1, 0, 0, 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 |