ImageAttributes.SetRemapTable Método

Definição

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:

  1. Cria uma imagem (um círculo vermelho), guarda-a como Circle2.jpg, abre essa imagem e desenha-a para o ecrã.

  2. Cria um mapa de cores que mapeia a cor vermelha para a verde.

  3. 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.

Aplica-se a