Leer en inglés

Compartir a través de


Graphics.GetHalftonePalette Método

Definición

Obtiene un identificador de la paleta de tonos medio de Windows actual.

C#
public static IntPtr GetHalftonePalette();

Devoluciones

IntPtr

Puntero interno que especifica el identificador de la paleta.

Ejemplos

El ejemplo de código siguiente está diseñado para su uso con Windows Forms y requiere PaintEventArgse, que es un parámetro del controlador de eventos Paint. El código realiza las siguientes acciones:

  • Define la interoperabilidad DllImportAttribute atributos para el archivo DLL de Windows gdi32.dll, que contiene las funciones de GDI necesarias.

  • Define las funciones SelectPalette y RealizePalette de ese archivo DLL como externas.

  • Crea una imagen a partir de un archivo de imagen existente SampImag.jpg (que debe estar en la misma carpeta que el archivo de código de ejemplo) y dibuja la imagen en la pantalla.

  • Crea variables de tipo de puntero interno y establece sus valores en el identificador del objeto gráfico y en la paleta actual de tonos medio de Windows, respectivamente.

  • Selecciona y se da cuenta de la paleta de tono medio.

  • Crea un nuevo objeto gráfico mediante el parámetro hdc.

  • Dibuja la imagen de nuevo.

  • Libera el identificador en el contexto del dispositivo.

El resultado es dos representaciones de la imagen de ejemplo: una con la paleta de 16 bits y otra con la 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);
}

Comentarios

El propósito del método GetHalftonePalette es permitir que GDI+ genere un tono medio de mejor calidad cuando la pantalla usa 8 bits por píxel. Para mostrar una imagen mediante la paleta de tonos medio, use el procedimiento siguiente.

Se aplica a

Producto Versiones
.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