Auf Englisch lesen

Teilen über


Graphics.GetHalftonePalette Methode

Definition

Ruft ein Handle zur aktuellen Windows-Halbtonpalette ab.

C#
public static IntPtr GetHalftonePalette();

Gibt zurück

IntPtr

Interner Zeiger, der das Handle für die Palette angibt.

Beispiele

Das folgende Codebeispiel wurde für die Verwendung mit Windows Forms entwickelt und erfordert PaintEventArgse, bei dem es sich um einen Parameter des Paint-Ereignishandlers handelt. Der Code führt die folgenden Aktionen aus:

  • Definiert die Interoperabilität DllImportAttribute Attribute für die Windows DLL-Datei gdi32.dll, die die erforderlichen GDI-Funktionen enthält.

  • Definiert die funktionen SelectPalette und RealizePalette in dieser DLL als extern.

  • Erstellt ein Bild aus einer vorhandenen Bilddatei SampImag.jpg (die sich im selben Ordner wie die Beispielcodedatei befinden muss) und zeichnet das Bild auf den Bildschirm.

  • Erstellt interne Zeigertypvariablen und legt deren Werte auf das Handle für das Grafikobjekt und die aktuelle Windows-Halbtonpalette fest.

  • Wählt die Halbtonpalette aus und realisiert sie.

  • Erstellt ein neues Grafikobjekt mit dem parameter hdc.

  • Zeichnet das Bild erneut.

  • Gibt das Handle für den Gerätekontext frei.

Das Ergebnis ist zwei Renderings des Beispielbilds: eine mit der 16-Bit-Palette und eine mit der 8-Bit-Palette.

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);
}

Hinweise

Der Zweck der GetHalftonePalette-Methode besteht darin, GDI+ zu ermöglichen, eine bessere Qualität halbton zu erzeugen, wenn die Anzeige 8 Bit pro Pixel verwendet. Verwenden Sie das folgende Verfahren, um ein Bild mithilfe der Halbtonpalette anzuzeigen.

Gilt für:

Produkt Versionen
.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