Halaman MSDN di GetHdc
Saya pikir inilah yang Anda cari. Anda perlu mendapatkan HDC dan kemudian menggunakan panggilan GDI untuk menggunakan SetPixel. Perhatikan, bahwa COLORREF di GDI adalah DWORD yang menyimpan warna BGR. Tidak ada saluran alfa, dan itu bukan RGB seperti struktur Warna GDI +.
Ini adalah bagian kecil dari kode yang saya tulis untuk menyelesaikan tugas yang sama:
public class GDI
{
[System.Runtime.InteropServices.DllImport("gdi32.dll")]
internal static extern bool SetPixel(IntPtr hdc, int X, int Y, uint crColor);
}
{
...
private void OnPanel_Paint(object sender, PaintEventArgs e)
{
int renderWidth = GetRenderWidth();
int renderHeight = GetRenderHeight();
IntPtr hdc = e.Graphics.GetHdc();
for (int y = 0; y < renderHeight; y++)
{
for (int x = 0; x < renderWidth; x++)
{
Color pixelColor = GetPixelColor(x, y);
uint colorRef = (uint)((pixelColor.B << 16) | (pixelColor.G << 8) | (pixelColor.R));
GDI.SetPixel(hdc, x, y, colorRef);
}
}
e.Graphics.ReleaseHdc(hdc);
}
...
}