public void updateImageList() { if (m_imageList?.Count > 0) { Image img = m_imageList[0].createImage(); m_image = new Bitmap(img.Width, img.Height); using (Graphics g = Graphics.FromImage(m_image)) { for (int i = 0; i < m_imageList.Count; i++) { IImageLayer il = m_imageList[i]; ColorMatrix CMFade = new ColorMatrix(); CMFade.Matrix33 = (float)il.Alpha; ImageAttributes AFade = new ImageAttributes(); AFade.SetColorMatrix(CMFade, ColorMatrixFlag.Default, ColorAdjustType.Bitmap); img = il.createImage(); g.DrawImage(img, new Rectangle(il.Position, img.Size), 0, 0, img.Width, img.Height, GraphicsUnit.Pixel, AFade); } } } else { m_image = new Bitmap(100, 100); } updateImageParameters(); }