Compartilhar via


Efeito de corte

Use o efeito de corte para gerar uma região especificada de uma imagem.

O CLSID para esse efeito é CLSID_D2D1Crop.

Imagem de exemplo

Antes
a imagem antes do efeito.
After (após)
a imagem após a transformação.
ComPtr<ID2D1Effect> cropEffect;
m_d2dContext->CreateEffect(CLSID_D2D1Crop, &cropEffect);

cropEffect->SetInput(0, bitmap);
cropEffect->SetValue(D2D1_CROP_PROP_RECT, D2D1::RectF(0.0f, 0.0f, 256.0f, 192.0f));

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

Propriedades de efeito

Nome de exibição e enumeração de índice Tipo e valor padrão Descrição
Rect
D2D1_VECTOR_4F
A região a ser cortada especificada como um vetor no formulário (esquerda, superior, largura, altura).
D2D1_CROP_PROP_RECT
{-FLT_MAX, -FLT_MAX, FLT_MAX, FLT_MAX}
As unidades estão em DIPs.
Observação:
O Rect será truncado se ele se sobrepor aos limites de borda da imagem de entrada.
D2D1_CROP_PROP_BORDER_MODE
D2D1_BORDER_MODE
D2D1_BORDER_MODE_SOFT
  • D2D1_BORDER_MODE_SOFT: se o retângulo de corte cair em coordenadas de pixel fracionário, o efeito aplicará a suavização que resulta em uma borda flexível.
  • D2D1_BORDER_MODE_HARD: se o retângulo de corte cair em coordenadas de pixel fracionário, o efeito será fixado, o que resultará em uma borda dura.

Bitmap de saída

A saída desse efeito é o tamanho da propriedade Rect. O comprimento e a largura são calc

ulated usando as equações aqui:

Comprimento de saída em Pixels=(Rect.Right-Rect.Left)*(DPI do usuário/96)
Altura da saída em pixels=(Rect.Bottom-Rect.Top)*(DPI do usuário/96)

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 8 e Platform Update para Windows 7 [aplicativos da área de trabalho | Aplicativos da Windows Store]
Servidor mínimo com suporte Windows 8 e Platform Update para Windows 7 [aplicativos da área de trabalho | Aplicativos da Windows Store]
Cabeçalho d2d1effects.h
Biblioteca d2d1.lib, dxguid.lib

ID2D1Effect