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 필요한을 포함 하는 Windows DLL 파일 gdi32.dll에 대 한 특성 GDIGDI 함수입니다.Defines interoperability DllImportAttribute attributes for the Windows DLL file gdi32.dll, which contains the necessary GDIGDI functions.

  • 정의 된 SelectPaletteRealizePalette 외부와 해당 DLL의 함수입니다.Defines the SelectPalette and RealizePalette functions in that DLL as external.

  • 기존 이미지 파일 (이어야 하는 예제 코드 파일과 동일한 폴더에) 예제에서에서 이미지를 만들고 화면에 이미지를 그립니다.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

설명

용도 GetHalftonePalette 메서드를 사용 하도록 설정 하는 것 GDI+GDI+ 표시 픽셀당 8 비트를 사용 하는 경우 더 나은 품질 하프톤을 생성 합니다.The 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.

적용 대상