Inheritance: UserBlendOp
		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 ();
		}