Browse DevX
Sign up for e-mail newsletters from DevX


Tip: Copying Pictures Quickly with C#

Learn how to copy pictures in C# with the BitBlt API.


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;

        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()

        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);



Visit the DevX Tip Bank


Thanks for your registration, follow us on our social networks to keep up-to-date