The best way to copy pictures in C# is most probably with the use of the BitBlt API. Here is a small example of its implementation:
public partial class Form1 : Form
{
const int SRCCOPY = 0xcc0020;
[System.Runtime.InteropServices.DllImportAttribute("gdi32.dll")]
private static extern int BitBlt(
IntPtr hdcDest, // handle to destination DC (device context)
int nXDest, // x-coord of destination upper-left corner
int nYDest, // y-coord of destination upper-left corner
int nWidth, // width of destination rectangle
int nHeight, // height of destination rectangle
IntPtr hdcSrc, // handle to source DC
int nXSrc, // x-coordinate of source upper-left corner
int nYSrc, // y-coordinate of source upper-left corner
System.Int32 dwRop // raster operation code
);
public Form1()
{
InitializeComponent();
}
private void Form1_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
g.FillRectangle(Brushes.White, ClientRectangle);
g.DrawRectangle(Pens.Black, 10, 10, 40, 40);
IntPtr dc = g.GetHdc();
BitBlt(dc, 70, 0, 60, 60, dc, 0, 0, SRCCOPY);
g.ReleaseHdc(dc);
}
}
Visit the DevX Tip Bank