Método ImageAttributes::ClearNoOp (gdiplusimageattributes.h)
O método ImageAttributes::ClearNoOp limpa a configuração NoOp para uma categoria especificada.
Sintaxe
Status ClearNoOp(
[in, optional] ColorAdjustType type
);
Parâmetros
[in, optional] type
Tipo: ColorAdjustType
Elemento da enumeração ColorAdjustType que especifica a categoria para a qual a configuração NoOp está desmarcada. O valor padrão é ColorAdjustTypeDefault.
Retornar valor
Tipo: Status
Se o método for bem-sucedido, ele retornará Ok, que é um elemento da enumeração Status .
Se o método falhar, ele retornará um dos outros elementos da enumeração Status .
Comentários
Você pode desabilitar o ajuste de cor para um determinado tipo de objeto chamando o método ImageAttributes::SetNoOp . Posteriormente, você pode restabelecer o ajuste de cor para esse tipo de objeto chamando o método ImageAttributes::ClearNoOp . Por exemplo, a seguinte instrução desabilita o ajuste de cor para pincéis:
myImageAttributes.SetNoOp(ColorAdjustTypeBrush);
A instrução a seguir restabelece o ajuste de cor do pincel que estava em vigor antes da chamada para ImageAttributes::SetNoOp:
myImageAttributes.ClearNoOp(ColorAdjustTypeBrush);
Exemplos
O exemplo a seguir cria um objeto Image de um arquivo .emf. O código também cria um objeto ImageAttributes . A chamada ImageAttributes::SetColorMatrix define a matriz de ajuste de cor do pincel desse objeto ImageAttributes como uma matriz que converte vermelho em verde.
O código chama DrawImage três vezes, cada vez passando o endereço do objeto Image e o endereço do objeto ImageAttributes . Quando a imagem é desenhada pela primeira vez, todo o vermelho pintado por pincéis é convertido em verde. (O vermelho desenhado por canetas não é alterado.) Antes que a imagem seja desenhada pela segunda vez, o código chama o método ImageAttributes::SetNoOp do objeto ImageAttributes . Portanto, quando a imagem é desenhada pela segunda vez, nenhum ajuste de cor é aplicado aos pincéis. Antes que a imagem seja desenhada pela terceira vez, o código chama o método ImageAttributes::ClearNoOp , que restabelece as configurações de ajuste de cor do pincel. Portanto, quando a imagem é desenhada pela terceira vez, todo o vermelho pintado por pincéis é convertido em verde.
VOID Example_SetClearNoOp(HDC hdc)
{
Graphics graphics(hdc);
Image image(L"TestMetafile4.emf");
ImageAttributes imAtt;
ColorMatrix brushMatrix = { // red converted to green
0.0f, 1.0f, 0.0f, 0.0f, 0.0f,
0.0f, 1.0f, 0.0f, 0.0f, 0.0f,
0.0f, 0.0f, 1.0f, 0.0f, 0.0f,
0.0f, 0.0f, 0.0f, 1.0f, 0.0f,
0.0f, 0.0f, 0.0f, 0.0f, 1.0f};
imAtt.SetColorMatrix(
&brushMatrix,
ColorMatrixFlagsDefault,
ColorAdjustTypeBrush);
// Draw the image (metafile) using brush color adjustment.
// Items filled with a brush change from red to green.
graphics.DrawImage(
&image,
Rect(0, 0, image.GetWidth(), image.GetHeight()), // dest rect
0, 0, image.GetWidth(), image.GetHeight(), // source rect
UnitPixel,
&imAtt);
// Temporarily disable brush color adjustment.
imAtt.SetNoOp(ColorAdjustTypeBrush);
// Draw the image (metafile) without brush color adjustment.
// There is no change from red to green.
graphics.DrawImage(
&image,
Rect(0, 80, image.GetWidth(), image.GetHeight()), // dest rect
0, 0, image.GetWidth(), image.GetHeight(), // source rect
UnitPixel,
&imAtt);
// Reinstate brush color adjustment.
imAtt.ClearNoOp(ColorAdjustTypeBrush);
// Draw the image (metafile) using brush color adjustment.
// Items filled with a brush change from red to green.
graphics.DrawImage(
&image,
Rect(0, 160, image.GetWidth(), image.GetHeight()), // dest rect
0, 0, image.GetWidth(), image.GetHeight(), // source rect
UnitPixel,
&imAtt);
}
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows XP, Windows 2000 Professional [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows 2000 Server [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | gdiplusimageattributes.h (inclua Gdiplus.h) |
Biblioteca | Gdiplus.lib |
DLL | Gdiplus.dll |