Schaduweffect
Gebruik het schaduweffect om een schaduw te genereren van het alfakanaal van een afbeelding. De schaduw is ondoorzichtig voor hogere alfawaarden en transparanter voor lagere alfawaarden. U kunt de hoeveelheid vervagen en de kleur van de schaduw instellen.
- voorbeeldafbeelding
- eigenschappen van effect
- Optimalisatiemodi
- uitvoer bitmap
- vereisten
- Verwante onderwerpen
De CLSID voor dit effect is CLSID_D2D1Shadow.
Voorbeeldafbeelding
In het voorbeeld ziet u de uitvoer van het schaduweffect dat is vertaald naar beneden en rechts met de bronafbeelding die erop is samengesteld op de oorspronkelijke locatie. Het schaduweffect voert alleen de schaduw uit.
Voor |
---|
![]() |
Na |
![]() |
ComPtr<ID2D1Effect> shadowEffect;
m_d2dContext->CreateEffect(CLSID_D2D1Shadow, &shadowEffect);
shadowEffect->SetInput(0, bitmap);
// Shadow is composited on top of a white surface to show opacity.
ComPtr<ID2D1Effect> floodEffect;
m_d2dContext->CreateEffect(CLSID_D2D1Flood, &floodEffect);
floodEffect->SetValue(D2D1_FLOOD_PROP_COLOR, D2D1::Vector4F(1.0f, 1.0f, 1.0f, 1.0f));
ComPtr<ID2D1Effect> affineTransformEffect;
m_d2dContext->CreateEffect(CLSID_D2D12DAffineTransform, &affineTransformEffect);
affineTransformEffect->SetInputEffect(0, shadowEffect.Get());
D2D1_MATRIX_3X2_F matrix = D2D1::Matrix3x2F::Translation(20, 20));
affineTransformEffect->SetValue(D2D1_2DAFFINETRANSFORM_PROP_TRANSFORM_MATRIX, matrix);
ComPtr<ID2D1Effect> compositeEffect;
m_d2dContext->CreateEffect(CLSID_D2D1Composite, &compositeEffect);
compositeEffect->SetInputEffect(0, floodEffect.Get());
compositeEffect->SetInputEffect(1, affineTransformEffect.Get());
compositeEffect->SetInput(2, bitmap);
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(compositeEffect.Get());
m_d2dContext->EndDraw();
Effecteigenschappen
Weergavenaam en indexenumeratie | Beschrijving |
---|---|
BlurStandardDeviation D2D1_SHADOW_PROP_BLUR_STANDARD_DEVIATION |
De hoeveelheid vervagen die moet worden toegepast op het alfakanaal van de afbeelding. U kunt de vervagende straal van de kernel berekenen door de standaarddeviatie te vermenigvuldigen met 3. De eenheden van zowel de standaarddeviatie als de blurstraal zijn DIPs. Deze eigenschap is hetzelfde als de eigenschap Gaussian Blur standaarddeviatie. Het type is FLOAT. De standaardwaarde is 3,0f. |
Kleur D2D1_SHADOW_PROP_COLOR |
De kleur van de slagschaduw. Deze eigenschap is een D2D1_VECTOR_4F gedefinieerd als: (R, G, B, A). U moet deze kleur in rechte alfa opgeven. Het type is D2D1_VECTOR_4F. De standaardwaarde is {0.0f, 0.0f, 0.0f, 1.0f}. |
Optimalisering D2D1_SHADOW_PROP_OPTIMIZATION |
Het prestatieoptimalisatieniveau. Het type is D2D1_SHADOW_OPTIMIZATION. De standaardwaarde is D2D1_SHADOW_OPTIMIZATION_BALANCED. |
Optimalisatiemodi
Naam | Beschrijving |
---|---|
D2D1_DIRECTIONALBLUR_OPTIMIZATION_SPEED | Hiermee past u interne optimalisaties toe, zoals vooraf schalen op relatief kleine radii. Maakt gebruik van lineair filteren. |
D2D1_DIRECTIONALBLUR_OPTIMIZATION_BALANCED | Gebruikt dezelfde optimalisatiedrempels als de snelheidsmodus, maar maakt gebruik van trilineaire filters. |
D2D1_DIRECTIONALBLUR_OPTIMIZATION_QUALITY | Maakt alleen gebruik van interne optimalisaties met grote vervagende radii, waarbij benaderingen minder waarschijnlijk zichtbaar zijn. Maakt gebruik van trilineaire filtering. |
Uitvoer bitmap
De grootte van de uitvoer bitmap is de grootte van de vervagende uitvoer. De hoeveelheid die de groei van de uitvoer bitmap ten opzichte van de oorspronkelijke bitmap ten opzichte van de oorspronkelijke bitmap kan worden berekend met behulp van de volgende vergelijking:
Output Bitmap Growth (X en Y) = BlurStandardDeviation (apparaatonafhankelijke pixels (DIPs))*6*(User DPI)/96
De uitvoer neemt in alle richtingen gelijk toe, dus als de grootte met 10 pixels in elke richting toeneemt, bevindt de linkerbovenhoek van de bitmap zich op (-5, -5) en bevindt de rechterbenedenhoek zich op (105, 105) zoals in het diagram hier wordt weergegeven.
Eisen
Eis | Waarde |
---|---|
Minimaal ondersteunde client | Windows 8 en Platform Update voor Windows 7 [desktop-apps | Windows Store-apps] |
Minimaal ondersteunde server | Windows 8 en Platform Update voor Windows 7 [desktop-apps | Windows Store-apps] |
Rubriek | d2d1effects.h |
Bibliotheek | d2d1.lib, dxguid.lib |