public Image GetThumbnailImage(int thumbWidth, int thumbHeight, Image.GetThumbnailImageAbort callback, IntPtr callbackData) { if ((thumbWidth <= 0) || (thumbHeight <= 0)) { throw new OutOfMemoryException("Invalid thumbnail size"); } Image ThumbNail = new Bitmap(thumbWidth, thumbHeight); using (Graphics g = Graphics.FromImage(ThumbNail)) { Status status = GDIPlus.GdipDrawImageRectRectI(g.nativeObject, nativeObject, 0, 0, thumbWidth, thumbHeight, 0, 0, this.Width, this.Height, GraphicsUnit.Pixel, IntPtr.Zero, null, IntPtr.Zero); GDIPlus.CheckStatus(status); } return(ThumbNail); }