1using System.Drawing; 2using System.Drawing.Imaging; 3 4namespace WindowCapture.Helpers 5{ 6 /// <summary> 7 /// Shared bitmap cloning and creation utilities. 8 /// </summary> 9 public static class BitmapHelper 10 { 11 /// <summary> 12 /// Clone a bitmap into a new Format32bppArgb bitmap (safe copy, no GDI+ lock issues). 13 /// </summary> 14 public static Bitmap Clone32(Image source) 15 { 16 var bmp = new Bitmap(source.Width, source.Height, PixelFormat.Format32bppArgb); 17 using (var g = Graphics.FromImage(bmp)) 18 g.DrawImage(source, 0, 0, source.Width, source.Height); 19 return bmp; 20 } 21 22 /// <summary> 23 /// Clone a bitmap preserving its original pixel format. 24 /// </summary> 25 public static Bitmap CloneExact(Image source) 26 { 27 var bmp = new Bitmap(source.Width, source.Height, source.PixelFormat); 28 using (var g = Graphics.FromImage(bmp)) 29 g.DrawImage(source, 0, 0); 30 return bmp; 31 } 32 } 33}