Graphics.GetHalftonePalette Metoda

Definicja

Pobiera uchwyt do bieżącej palety półtonu systemu Windows.

C#
public static IntPtr GetHalftonePalette();

Zwraca

IntPtr

Wewnętrzny wskaźnik określający uchwyt do palety.

Przykłady

Poniższy przykład kodu jest przeznaczony do użycia z formularzami Systemu Windows i wymaga PaintEventArgse, który jest parametrem programu obsługi zdarzeń Paint. Kod wykonuje następujące akcje:

  • Definiuje atrybuty współdziałania DllImportAttribute dla pliku DLL systemu Windows gdi32.dll, który zawiera niezbędne funkcje GDI.

  • Definiuje funkcje SelectPalette i RealizePalette w tej biblioteki DLL jako zewnętrzne.

  • Tworzy obraz z istniejącego pliku obrazu SampImag.jpg (który musi znajdować się w tym samym folderze co przykładowy plik kodu) i rysuje obraz na ekran.

  • Tworzy zmienne typu wskaźnika wewnętrznego i ustawia ich wartości na uchwyt do obiektu graficznego i do bieżącej palety halftone systemu Windows, odpowiednio.

  • Wybiera paletę półtonów i zdaje sobie sprawę z tej palety.

  • Tworzy nowy obiekt graficzny przy użyciu parametru hdc.

  • Ponownie rysuje obraz.

  • Zwalnia uchwyt do kontekstu urządzenia.

Wynikiem jest dwa renderowanie przykładowego obrazu: jeden z paletą 16-bitową i jedną z paletą 8-bitową.

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

Uwagi

Celem metody GetHalftonePalette jest włączenie interfejsu GDI+ w celu uzyskania lepszej jakości półtonu, gdy ekran używa 8 bitów na piksel. Aby wyświetlić obraz przy użyciu palety półtonów, wykonaj poniższą procedurę.

Dotyczy

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