示例#1
0
        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();
        }