Esempio n. 1
0
        public void DrawImage(IImage image, Rect frame, double alpha = 1.0)
        {
            var ii = image as ImageImage;

            if (ii != null)
            {
                if (alpha < 0.999)
                {
                    var i   = new ImageAttributes();
                    var mat = new ColorMatrix(new float[][] {
                        new[] { 1.0f, 0.0f, 0.0f, 0.0f, 0.0f },
                        new[] { 0.0f, 1.0f, 0.0f, 0.0f, 0.0f },
                        new[] { 0.0f, 0.0f, 1.0f, 0.0f, 0.0f },
                        new[] { 0.0f, 0.0f, 0.0f, (float)alpha, 0.0f },
                        new[] { 0.0f, 0.0f, 0.0f, 0.0f, 1.0f }
                    });
                    i.SetColorMatrix(mat);
                    var size = ii.Image.Size;
                    graphics.DrawImage(ii.Image, Conversions.GetRectangle(frame),
                                       0, 0, size.Width, size.Height, GraphicsUnit.Pixel, i);
                }
                else
                {
                    graphics.DrawImage(ii.Image, Conversions.GetRectangleF(frame));
                }
            }
        }