public void OverlayBlendOp2()
        {
            var lhs = GetSourceImage("blend1.png");
            var rhs = GetSourceImage("blend2.png");

            var lhs_wrap = new BitmapWrapper(lhs);
            var rhs_wrap = new BitmapWrapper(rhs);

            var op = new OverlayBlendOp();

            op.Apply(rhs_wrap, lhs_wrap);

            Compare(lhs, "overlayblend2.png");
        }
        /// <summary>
        /// Creates a new effect that will soften an image.
        /// </summary>
        /// <param name="softness">How much to soften the image. Valid range is 0 - 10.</param>
        /// <param name="lighting">Amount of lighting to apply. Valid range is -20 - 20.</param>
        /// <param name="warmth">Amount of warmth to apply. Valid range is 0 - 20.</param>
        public SoftenPortraitEffect(int softness = 5, int lighting = 0, int warmth = 10)
        {
            if (softness < 0 || softness > 10)
            {
                throw new ArgumentOutOfRangeException("softness");
            }
            if (lighting < -20 || lighting > 20)
            {
                throw new ArgumentOutOfRangeException("lighting");
            }
            if (warmth < 0 || warmth > 20)
            {
                throw new ArgumentOutOfRangeException("warmth");
            }

            this.softness = softness;
            this.lighting = lighting;
            this.warmth   = warmth;

            blur_effect    = new GaussianBlurEffect(2);
            bac_adjustment = new BrightnessContrastEffect(0, 0);
            desaturate_op  = new DesaturateOp();
            overlay_op     = new OverlayBlendOp();
        }