Ler em inglês

Partilhar via


Graphics.GetHalftonePalette Método

Definição

Obtém um identificador para a paleta de halftone atual do Windows.

C#
public static IntPtr GetHalftonePalette();

Retornos

IntPtr

Ponteiro interno que especifica o identificador para a paleta.

Exemplos

O exemplo de código a seguir foi projetado para uso com o Windows Forms e requer PaintEventArgse, que é um parâmetro do manipulador de eventos Paint. O código executa as seguintes ações:

  • Define a interoperabilidade DllImportAttribute atributos para o arquivo DLL do Windows gdi32.dll, que contém as funções GDI necessárias.

  • Define as funções SelectPalette e RealizePalette nessa DLL como externas.

  • Cria uma imagem de um arquivo de imagem existente SampImag.jpg (que deve estar na mesma pasta que o arquivo de código de exemplo) e desenha a imagem para a tela.

  • Cria variáveis de tipo de ponteiro internas e define seus valores para o identificador para o objeto gráfico e para a paleta de meias do Windows atual, respectivamente.

  • Seleciona e percebe a paleta de halftone.

  • Cria um novo objeto gráfico usando o parâmetro hdc.

  • Desenha a imagem novamente.

  • Libera o identificador para o contexto do dispositivo.

O resultado são duas renderizações da imagem de exemplo: uma com a paleta de 16 bits e outra com a paleta de 8 bits.

C#
[System.Runtime.InteropServices.DllImportAttribute("gdi32.dll")]
private static extern IntPtr SelectPalette(
    IntPtr hdc,
    IntPtr htPalette,
    bool bForceBackground);
[System.Runtime.InteropServices.DllImportAttribute("gdi32.dll")]
private static extern int RealizePalette(IntPtr hdc);

private void GetHalftonePaletteVoid(PaintEventArgs e)
{
    // Create and draw image.
    Image imageFile = Image.FromFile("SampImag.jpg");
    e.Graphics.DrawImage(imageFile, new Point(0, 0));

    // Get handle to device context.
    IntPtr hdc = e.Graphics.GetHdc();

    // Get handle to halftone palette.
    IntPtr htPalette = Graphics.GetHalftonePalette();

    // Select and realize new palette.
    SelectPalette(hdc, htPalette, true);
    RealizePalette(hdc);

    // Create new graphics object.
    Graphics newGraphics = Graphics.FromHdc(hdc);

    // Draw image with new palette.
    newGraphics.DrawImage(imageFile, 300, 0);

    // Release handle to device context.
    e.Graphics.ReleaseHdc(hdc);
}

Comentários

A finalidade do método GetHalftonePalette é permitir que o GDI+ produza um halftone de melhor qualidade quando a exibição usa 8 bits por pixel. Para exibir uma imagem usando a paleta de halftone, use o procedimento a seguir.

Aplica-se a

Produto Versões
.NET 8 (package-provided), 9 (package-provided), 10 (package-provided)
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0 (package-provided)
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10