Graphics.GetHalftonePalette メソッド
現在の Windows ハーフトーン パレットを識別するハンドルを取得します。
Public Shared Function GetHalftonePalette() As IntPtr
[C#]
public static IntPtr GetHalftonePalette();
[C++]
public: static IntPtr GetHalftonePalette();
[JScript]
public static function GetHalftonePalette() : IntPtr;
戻り値
パレットを識別するハンドルを指定する内部ポインタ。
解説
GetHalftonePalette メソッドの目的は、8 ビット/ピクセルの表示を使用する場合に GDI+ で生成するハーフトーンの品質を向上させることです。ハーフトーン パレットを使用してイメージを表示するには、次の手順に従います。
使用例
[Visual Basic, C#] 次の例は、Windows フォームでの使用を意図してデザインされており、 Paint イベント ハンドラのパラメータである PaintEventArgs e が必要です。このコードは次のアクションを実行します。
- 必要な GDI 関数が格納された、Windows DLL ファイル gdi32.dll の相互運用性 DllImportAttribute 属性を定義します。
- その DLL の SelectPalette 関数と RealizePalette 関数を外部関数として定義します。
- 既存のイメージ ファイル SampImag.jpg (サンプルのコード ファイルと同じフォルダに置く必要があります) からイメージを作成し、画面にそのイメージを描画します。
- 内部ポインタ型変数を作成し、それらの値を e . Graphics オブジェクトを識別するハンドルと、現在の Windows ハーフトーン パレットを識別するハンドルにそれぞれ設定します。
- ハーフトーン パレットを選択および認識します。
- hdc パラメータを使用して、新しいグラフィックス オブジェクトを作成します。
- イメージを再度描画します。
- デバイス コンテキストを識別するハンドルを解放します。
[Visual Basic, C#] 16 ビット パレットと 8 ビット パレットを使用して、サンプル イメージの 2 つのレンダリングが生成されます。
<System.Runtime.InteropServices.DllImportAttribute("gdi32.dll")> _
Private Shared Function SelectPalette(hdc As IntPtr, _
htPalette As IntPtr, bForceBackground As Boolean) As IntPtr
End Function
<System.Runtime.InteropServices.DllImportAttribute("gdi32.dll")> _
Private Shared Function RealizePalette(hdc As IntPtr) As Integer
End Function
Public Sub GetHalftonePaletteVoid(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
[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);
public 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);
}
[C++, JScript] C++ および JScript のサンプルはありません。Visual Basic および C# のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ