Составной эффект
Используйте составной эффект для объединения 2 или более изображений. Этот эффект имеет 13 различных составных режимов. T
Составной эффект принимает 2 или более входных данных. При указании 2 изображений назначение является первым входным (индексом 0), а источником является второй вход (индекс 1). Если указать более 2 входных данных, изображения составятся начиная с первого входного и второго и т. д.
Этот эффект реализует все режимы с помощью смешивания единицы графической обработки (GPU).
CLSID для этого эффекта CLSID_D2D1Composite.
- пример изображения
- свойства эффекта
- Типы режима
- пример кода
- требования
- связанные разделы
Пример изображения
На изображении показаны 2 округленные прямоугольники с одинаковым размером, перекрывающимся. Синий прямоугольник является источником, и красный прямоугольник является назначением. Изображения были составными с помощью режима Source Over.
Ниже приведен еще один пример использования режима по умолчанию.
Перед изображением 1 |
---|
![]() |
Перед изображением 2 |
![]() |
После |
![]() |
ComPtr<ID2D1Effect> compositeEffect;
m_d2dContext->CreateEffect(CLSID_D2D1Composite, &compositeEffect);
compositeEffect->SetInput(0, bitmap);
compositeEffect->SetInput(1, bitmapTwo);
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(compositeEffect.Get());
m_d2dContext->EndDraw();
Свойства эффекта
Отображаемое имя и перечисление индексов | Тип и значение по умолчанию | Описание |
---|---|---|
Режим D2D1_COMPOSITE_PROP_MODE |
D2D1_COMPOSITE_MODE D2D1_COMPOSITE_MODE_SOURCE_OVER |
Режим, используемый для эффекта. |
Типы режимов
В таблице показаны режимы этого эффекта. Уравнения, перечисленные в таблице, используют следующие элементы:
- O = выходные данные
- S = источник
- SA = Source Alpha
- D = назначение
- DA = целевой альфа-канал
Перечисление | Уравнение | Размер растрового изображения вывода |
---|---|---|
D2D1_COMPOSITE_MODE_SOURCE_OVER | O = S + (1 SA) * D | Объединение исходных и целевых растровых изображений |
D2D1_COMPOSITE_MODE_DESTINATION_OVER | O = (1 DA) * S + D | Объединение исходных и целевых растровых изображений |
D2D1_COMPOSITE_MODE_SOURCE_IN | O = DA * S | Пересечение исходных и целевых растровых карт |
D2D1_COMPOSITE_MODE_DESTINATION_IN | O = SA * D | Пересечение исходных и целевых растровых карт |
D2D1_COMPOSITE_MODE_SOURCE_OUT | O = (1 - DA) * S | Область исходного растрового изображения |
D2D1_COMPOSITE_MODE_DESTINATION_OUT | O = (1 — SA) * D | Область целевого растрового изображения |
D2D1_COMPOSITE_MODE_SOURCE_ATOP | O = DA * S + (1 - SA) * D | Область целевого растрового изображения |
D2D1_COMPOSITE_MODE_DESTINATION_ATOP | O = (1 - DA) * S + SA * D | Область исходного растрового изображения |
D2D1_COMPOSITE_MODE_XOR | O = (1 - DA) * S + (1 - SA) * D | Объединение исходных и целевых растровых изображений |
D2D1_COMPOSITE_MODE_PLUS | O = S + D | Объединение исходных и целевых растровых изображений |
D2D1_COMPOSITE_MODE_SOURCE_COPY | O = S | Область исходного растрового изображения |
D2D1_COMPOSITE_MODE_BOUNDED_SOURCE_COPY | O = S (только там, где существует источник) | Объединение исходных и целевых растровых изображений. Назначение не перезаписывается, где источник не существует. |
D2D1_COMPOSITE_MODE_MASK_INVERT | O = (1 D) * S + (1 SA) * D | Объединение исходных и целевых растровых изображений. Альфа-значения не изменяются. |
На рисунке ниже показан пример каждого из режимов с изображениями с непрозрачностью 1.0 или 0,5.
Пример кода
Пример этого эффекта можно скачать пример режимов составных эффектов Direct2D.
Требования
Требование | Ценность |
---|---|
Минимальный поддерживаемый клиент | Windows 8 и Обновление платформы для Windows 7 [классические приложения | Приложения Магазина Windows] |
Минимальный поддерживаемый сервер | Windows 8 и Обновление платформы для Windows 7 [классические приложения | Приложения Магазина Windows] |
Заголовок | d2d1effects.h |
Библиотека | d2d1.lib, dxguid.lib |