ImageAttributes.SetRemapTable Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Define a tabela de remapeamento de cores.
Sobrecargas
| Name | Description |
|---|---|
| SetRemapTable(ColorMap[]) |
Define a tabela de remapeamento de cores para a categoria padrão. |
| SetRemapTable(ColorMap[], ColorAdjustType) |
Define a tabela de remapeamento de cor para uma categoria especificada. |
SetRemapTable(ColorMap[])
Define a tabela de remapeamento de cores para a categoria padrão.
public:
void SetRemapTable(cli::array <System::Drawing::Imaging::ColorMap ^> ^ map);
public void SetRemapTable(System.Drawing.Imaging.ColorMap[] map);
member this.SetRemapTable : System.Drawing.Imaging.ColorMap[] -> unit
Public Sub SetRemapTable (map As ColorMap())
Parâmetros
- map
- ColorMap[]
Um conjunto de pares de cores do tipo ColorMap. Cada par de cores contém uma cor existente (o primeiro valor) e a cor para a qual será mapeado (o segundo valor).
Exemplos
O seguinte exemplo de código foi concebido para uso com Windows Forms e requer PaintEventArgse, que é um parâmetro do tratador de eventos Paint. O código executa as seguintes ações:
Cria uma imagem (um círculo vermelho), guarda-a como Circle2.jpg, abre essa imagem e desenha-a para o ecrã.
Cria um mapa de cores que mapeia a cor vermelha para a verde.
Desenha novamente a imagem criada anteriormente no ecrã, mas desta vez usando o mapa de cores.
private:
void SetRemapTableExample( PaintEventArgs^ e )
{
// Create a filled, red image, and save it to Circle2.jpg.
Bitmap^ myBitmap = gcnew Bitmap( 50,50 );
Graphics^ g = Graphics::FromImage( myBitmap );
g->Clear( Color::White );
g->FillEllipse( gcnew SolidBrush( Color::Red ), Rectangle(0,0,50,50) );
myBitmap->Save( "Circle2.jpg" );
// Create an Image object from the Circle2.jpg file, and draw it to
// the screen.
Image^ myImage = Image::FromFile( "Circle2.jpg" );
e->Graphics->DrawImage( myImage, 20, 20 );
// Create a color map.
array<ColorMap^>^myColorMap = gcnew array<ColorMap^>(1);
myColorMap[ 0 ] = gcnew ColorMap;
myColorMap[ 0 ]->OldColor = Color::Red;
myColorMap[ 0 ]->NewColor = Color::Green;
// Create an ImageAttributes object, and then pass the
// myColorMap object to the SetRemapTable method.
ImageAttributes^ imageAttr = gcnew ImageAttributes;
imageAttr->SetRemapTable( myColorMap );
// Draw the image with the remap table set.
Rectangle rect = Rectangle(150,20,50,50);
e->Graphics->DrawImage( myImage, rect, 0, 0, 50, 50, GraphicsUnit::Pixel, imageAttr );
}
private void SetRemapTableExample(PaintEventArgs e)
{
// Create a filled, red image, and save it to Circle2.jpg.
Bitmap myBitmap = new Bitmap(50, 50);
Graphics g = Graphics.FromImage(myBitmap);
g.Clear(Color.White);
g.FillEllipse(new SolidBrush(Color.Red),
new Rectangle(0, 0, 50, 50));
myBitmap.Save("Circle2.jpg");
// Create an Image object from the Circle2.jpg file, and draw it to
// the screen.
Image myImage = Image.FromFile("Circle2.jpg");
e.Graphics.DrawImage(myImage, 20, 20);
// Create a color map.
ColorMap[] myColorMap = new ColorMap[1];
myColorMap[0] = new ColorMap();
myColorMap[0].OldColor = Color.Red;
myColorMap[0].NewColor = Color.Green;
// Create an ImageAttributes object, and then pass the
// myColorMap object to the SetRemapTable method.
ImageAttributes imageAttr = new ImageAttributes();
imageAttr.SetRemapTable(myColorMap);
// Draw the image with the remap table set.
Rectangle rect = new Rectangle(150, 20, 50, 50);
e.Graphics.DrawImage(myImage, rect, 0, 0, 50, 50,
GraphicsUnit.Pixel, imageAttr);
}
Public Sub SetRemapTableExample(ByVal e As PaintEventArgs)
' Create a filled, red image and save it to Circle2.jpg.
Dim myBitmap As New Bitmap(50, 50)
Dim g As Graphics = Graphics.FromImage(myBitmap)
g.Clear(Color.White)
g.FillEllipse(New SolidBrush(Color.Red), New Rectangle(0, 0, _
50, 50))
myBitmap.Save("Circle2.jpg")
' Create an Image object from the Circle2.jpg file, and draw
' it to the screen.
Dim myImage As Image = Image.FromFile("Circle2.jpg")
e.Graphics.DrawImage(myImage, 20, 20)
' Create a color map.
Dim myColorMap(0) As ColorMap
myColorMap(0) = New ColorMap
myColorMap(0).OldColor = Color.Red
myColorMap(0).NewColor = Color.Green
' Create an ImageAttributes object, and then pass the
' myColorMap object to the SetRemapTable method.
Dim imageAttr As New ImageAttributes
imageAttr.SetRemapTable(myColorMap)
' Draw the image with the remap table set.
Dim rect As New Rectangle(150, 20, 50, 50)
e.Graphics.DrawImage(myImage, rect, 0, 0, 50, 50, _
GraphicsUnit.Pixel, imageAttr)
' Image
End Sub
Observações
Uma tabela de remapeamento de cores é um array de ColorMap estruturas. Cada ColorMap estrutura tem dois Color objetos: um que especifica uma cor antiga e outro que especifica uma cor nova correspondente. Durante a renderização, qualquer cor que corresponda a uma das cores antigas na tabela de remapeamento é alterada para a cor nova correspondente.
Um ImageAttributes objeto mantém definições de cor e tons de cinzento para cinco categorias de ajuste: padrão, bitmap, pincel, caneta e texto. Por exemplo, pode especificar um remapeamento de cor para a categoria padrão, uma tabela de remapeamento de cor para a categoria bitmap, e ainda uma tabela de remapeamento de cor diferente para a categoria de canetas.
As definições padrão de ajuste de cor e de escala de cinzentos aplicam-se a todas as categorias que não tenham definições próprias de ajuste. Por exemplo, se nunca especificares definições de ajuste para a categoria de canetas, as definições padrão aplicam-se à categoria de canetas.
Aplica-se a
SetRemapTable(ColorMap[], ColorAdjustType)
Define a tabela de remapeamento de cor para uma categoria especificada.
public:
void SetRemapTable(cli::array <System::Drawing::Imaging::ColorMap ^> ^ map, System::Drawing::Imaging::ColorAdjustType type);
public void SetRemapTable(System.Drawing.Imaging.ColorMap[] map, System.Drawing.Imaging.ColorAdjustType type);
member this.SetRemapTable : System.Drawing.Imaging.ColorMap[] * System.Drawing.Imaging.ColorAdjustType -> unit
Public Sub SetRemapTable (map As ColorMap(), type As ColorAdjustType)
Parâmetros
- map
- ColorMap[]
Um conjunto de pares de cores do tipo ColorMap. Cada par de cores contém uma cor existente (o primeiro valor) e a cor para a qual será mapeado (o segundo valor).
- type
- ColorAdjustType
Um elemento de ColorAdjustType que especifica a categoria para a qual a tabela de remapeamento de cor está definida.
Exemplos
Para um exemplo de código, veja o SetRemapTable(ColorMap[]) método.
Observações
Uma tabela de remapeamento de cores é um array de ColorMap estruturas. Cada ColorMap estrutura tem dois Color objetos: um que especifica uma cor antiga e outro que especifica uma cor nova correspondente. Durante a renderização, qualquer cor que corresponda a uma das cores antigas na tabela de remapeamento é alterada para a cor nova correspondente.
Um ImageAttributes objeto mantém definições de cor e tons de cinzento para cinco categorias de ajuste: padrão, bitmap, pincel, caneta e texto. Por exemplo, pode especificar um remapeamento de cor para a categoria padrão, uma tabela de remapeamento de cor para a categoria bitmap, e ainda uma tabela de remapeamento de cor diferente para a categoria de canetas.
As definições padrão de ajuste de cor e de escala de cinzentos aplicam-se a todas as categorias que não tenham definições próprias de ajuste. Por exemplo, se nunca especificares definições de ajuste para a categoria de canetas, as definições padrão aplicam-se à categoria de canetas.
Assim que especificas uma definição de ajuste de cor ou de escala de cinzentos para uma determinada categoria, as definições de ajuste padrão deixam de se aplicar a essa categoria. Por exemplo, suponha que especifica uma coleção de definições de ajuste para a categoria padrão. Se definires a tabela de remapeamento de cores para a categoria de canetas passando Pen para o SetRemapTable método, nenhuma das definições de ajuste padrão se aplicará às canetas.