Dela via


Gaussisk oskärpa

Använd effekten gaussisk oskärpa för att skapa en oskärpa baserat på gaussiska funktionen över hela indatabilden.

Du kan använda den här effekten för att skapa glöd och skuggor och använda sammansatta effekt för att tillämpa resultatet på den ursprungliga bilden. Det är användbart vid fotobearbetning för filter som markeringar och skuggor. Du kan använda resultatet av denna effekt för indata i belysningseffekter, som Specular Lighting eller Diffus belysning effekter, eftersom alfakanalen också är suddig och ljuseffekter använder alfakanalen för att fastställa ytgeometri som en höjdkarta.

Den här effekten används av den inbyggda Shadow-effekten.

CLSID för den här effekten är CLSID_D2D1GaussianBlur.

Exempelbild

Före
bilden före effekten.
Efter
bilden efter transformen.
ComPtr<ID2D1Effect> gaussianBlurEffect;
m_d2dContext->CreateEffect(CLSID_D2D1GaussianBlur, &gaussianBlurEffect);

gaussianBlurEffect->SetInput(0, bitmap);
gaussianBlurEffect->SetValue(D2D1_GAUSSIANBLUR_PROP_STANDARD_DEVIATION, 3.0f);

m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(gaussianBlurEffect.Get());
m_d2dContext->EndDraw();

Effektegenskaper

Visningsnamn och indexuppräkning Beskrivning
StandardDeviation
D2D1_GAUSSIANBLUR_PROP_STANDARD_DEVIATION
Mängden oskärpa som ska tillämpas på bilden. Du kan beräkna kärnans radie med oskärpa genom att multiplicera standardavvikelsen med 3. Enheterna för både standardavvikelsen och radien för oskärpa är DIP:er. Värdet noll DIP:er inaktiverar den här effekten helt. Typen är FLOAT.
Standardvärdet är 3,0f.
Optimering
D2D1_GAUSSIANBLUR_PROP_OPTIMIZATION
Optimeringsläget. Mer information finns i optimeringslägen. Typen är D2D1_GAUSSIANBLUR_OPTIMIZATION.
Standardvärdet är D2D1_GAUSSIANBLUR_OPTIMIZATION_BALANCED.
BorderMode
D2D1_GAUSSIANBLUR_PROP_BORDER_MODE
Det läge som används för att beräkna bildens kantlinje, mjuk eller hård. Mer information finns i kantlinjelägen.
Typen är D2D1_GAUSSIANBLUR_BORDER_MODE.
Standardvärdet är D2D1_BORDER_MODE_SOFT.

Optimeringslägen

Namn Beskrivning
D2D1_DIRECTIONALBLUR_OPTIMIZATION_SPEED Tillämpar interna optimeringar, till exempel förskalning vid relativt liten radi. Använder linjär filtrering.
D2D1_DIRECTIONALBLUR_OPTIMIZATION_BALANCED Använder samma optimeringströsklar som hastighetsläge, men använder trilinär filtrering.
D2D1_DIRECTIONALBLUR_OPTIMIZATION_QUALITY Använder endast interna optimeringar med radier med stor oskärpa, där uppskattningar är mindre benägna att vara synliga. Använder trilinär filtrering.

Kantlinjelägen

Namn Beskrivning
D2D1_BORDER_MODE_SOFT Effekten fyller bilden med transparenta svarta bildpunkter när den applicerar oskärpaskärnan, vilket resulterar i en mjuk kant.
D2D1_BORDER_MODE_HARD Effekten klämmer utdata till indatabildens storlek. När effekten tillämpar oskärpaskärnan utökas indatabilden med en kantlinjetransformering av spegeltyp för exempel utanför indatagränserna.

Utdatabitmapp

Utdata från den här effekten kan vara större än bitmappen för indata baserat på radien för oskärpa och kantlinjeläget. Om kantlinjeläget är inställt på D2D1_BORDER_MODE_SOFT ökar storleken på utdatabitmappen med storleken på oskärpaskärnan, representerad i bildpunkter. Den här tabellen innehåller en ekvation som du kan använda för att beräkna utdatabitmappen.

Output bitmap growth (X and Y) = StandardDeviation (DIPs)*6*((User DPI)/96)

Så om bildstorleken ökar med 10 bildpunkter i varje riktning kommer det övre vänstra hörnet av bilden att finnas på (-5, -5) medan den nedre högra kommer att vara på (105, 105).

Krav

Krav Värde
Lägsta klient som stöds Windows 8 och Platform Update för Windows 7 [skrivbordsappar | Windows Store-appar]
Lägsta server som stöds Windows 8 och Platform Update för Windows 7 [skrivbordsappar | Windows Store-appar]
Rubrik d2d1effects.h
Bibliotek d2d1.lib, dxguid.lib

ID2D1Effect