Graphics.GetHalftonePalette Graphics.GetHalftonePalette Graphics.GetHalftonePalette Graphics.GetHalftonePalette Method

Определение

Получает дескриптор текущей полутоновой палитры Windows.Gets a handle to the current Windows halftone palette.

public:
 static IntPtr GetHalftonePalette();
public static IntPtr GetHalftonePalette ();
static member GetHalftonePalette : unit -> nativeint
Public Shared Function GetHalftonePalette () As IntPtr

Возвраты

Внутренний указатель, который задает дескриптор палитры.Internal pointer that specifies the handle to the palette.

Примеры

Следующий пример кода предназначен для использования с Windows Forms и требует PaintEventArgs e, что Paint является параметром обработчика событий.The following code example is designed for use with Windows Forms, and it requires PaintEventArgse, which is a parameter of the Paint event handler. Код выполняет следующие действия.The code performs the following actions:

  • Определяет атрибуты взаимодействия DllImportAttribute для файла DLL Windows GDI32. dll, который содержит необходимые GDIGDI функции.Defines interoperability DllImportAttribute attributes for the Windows DLL file gdi32.dll, which contains the necessary GDIGDI functions.

  • Определяет функции RealizePalette и в этой библиотеке DLL как внешние. SelectPaletteDefines the SelectPalette and RealizePalette functions in that DLL as external.

  • Создает образ из существующего файла образа Сампимаг. jpg (который должен находиться в той же папке, что и файл с примером кода) и рисует изображение на экране.Creates an image from an existing image file SampImag.jpg (which must be in the same folder as the example code file) and draws the image to the screen.

  • Создает переменные внутреннего типа указателя и задает их значения для объекта Graphics и для текущей палитры полутонов Windows соответственно.Creates internal pointer type variables and sets their values to the handle to the graphics object and to the current Windows halftone palette, respectively.

  • Выбирает и реализует палитру полутонов.Selects and realizes the halftone palette.

  • Создает новый графический объект, hdc используя параметр.Creates a new graphics object using the hdc parameter.

  • Снова отображает изображение.Draws the image again.

  • Освобождает дескриптор контекста устройства.Releases the handle to the device context.

Результатом является два рендеринга образца изображения: один с 16-разрядной палитрой и один с 8-разрядной палитрой.The result is two renderings of the sample image: one with the 16-bit palette and one with the 8-bit palette.

private:
   [System::Runtime::InteropServices::DllImportAttribute("gdi32.dll")]
   static IntPtr SelectPalette( IntPtr hdc, IntPtr htPalette, bool bForceBackground );

   [System::Runtime::InteropServices::DllImportAttribute("gdi32.dll")]
   static int RealizePalette( IntPtr hdc );

public:
   void GetHalftonePaletteVoid( PaintEventArgs^ e )
   {
      // Create and draw image.
      Image^ imageFile = Image::FromFile( "SampImag.jpg" );
      e->Graphics->DrawImage( imageFile, 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 );
   }
[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);

[System.Security.Permissions.SecurityPermission(
System.Security.Permissions.SecurityAction.LinkDemand, Flags = 
System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode)]            
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);
}
<System.Runtime.InteropServices.DllImportAttribute("gdi32.dll")> _
Private Shared Function SelectPalette(ByVal hdc As IntPtr, _
ByVal htPalette As IntPtr, ByVal bForceBackground As Boolean) As IntPtr
End Function

<System.Runtime.InteropServices.DllImportAttribute("gdi32.dll")> _
Private Shared Function RealizePalette(ByVal hdc As IntPtr) As Integer
End Function

<System.Security.Permissions.SecurityPermission( _
System.Security.Permissions.SecurityAction.LinkDemand, Flags:= _
System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode)> _
Private Sub GetHalftonePaletteVoid(ByVal e As PaintEventArgs)

    ' Create and draw image.
    Dim imageFile As Image = Image.FromFile("SampImag.jpg")
    e.Graphics.DrawImage(imageFile, New Point(0, 0))

    ' Get handle to device context.
    Dim hdc As IntPtr = e.Graphics.GetHdc()

    ' Get handle to halftone palette.
    Dim htPalette As IntPtr = Graphics.GetHalftonePalette()

    ' Select and realize new palette.
    SelectPalette(hdc, htPalette, True)
    RealizePalette(hdc)

    ' Create new graphics object.
    Dim newGraphics As Graphics = Graphics.FromHdc(hdc)

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

    ' Release handle to device context.
    e.Graphics.ReleaseHdc(hdc)
End Sub

Комментарии

Этот метод предназначен GDI+GDI+ для повышения качества передачи полутонов, когда на дисплее используется 8 бит на пиксель. GetHalftonePaletteThe purpose of the GetHalftonePalette method is to enable GDI+GDI+ to produce a better quality halftone when the display uses 8 bits per pixel. Чтобы отобразить изображение с помощью палитры полутонов, выполните следующую процедуру.To display an image using the halftone palette, use the following procedure.

Применяется к