void DrawImageIntersectClip(Graphics g)
        {
            // Create the first rectangle and draw it to the screen in black.
            Rectangle regionRect = new Rectangle(20, 20, 100, 100);
            g.DrawRectangle(Pens.Black, regionRect);

            // create the second rectangle and draw it to the screen in red.
            RectangleF complementRect = new RectangleF(90, 30, 100, 100);
            g.DrawRectangle(Pens.Red,
                            Rectangle.Round(complementRect));

            // Create a region using the first rectangle.
            Region myRegion = new Region(regionRect);

            // Get the area of intersection for myRegion when combined with
            // complementRect.
            myRegion.Intersect(complementRect);

            var unionRect = complementRect.UnionWith (regionRect);
            g.DrawRectangle(Pens.Green,
                            Rectangle.Round(unionRect));

            g.Clip = myRegion;

            g.DrawImage(bmp2, unionRect);

            title = "DrawImageIntersetClip";
        }