Inheritance: UnaryPixelOp
		/// <summary>
		/// Creates a new effect that will make an image look like an ink sketch.
		/// </summary>
		/// <param name="inkOutline">Size of the ink outline. Valid range is 0 - 99.</param>
		/// <param name="coloring">Amount of color to keep. Valid range is 0 - 100.</param>
		public InkSketchEffect (int inkOutline = 50, int coloring = 50)
		{
			if (inkOutline < 0 || inkOutline > 99)
				throw new ArgumentOutOfRangeException ("inkOutline");
			if (coloring < 0 || coloring > 100)
				throw new ArgumentOutOfRangeException ("coloring");

			ink_outline = inkOutline;
			this.coloring = coloring;

			glow_effect = new GlowEffect (6, -(coloring - 50) * 2, -(coloring - 50) * 2);
			desaturate_op = new DesaturateOp ();
			darken_op = new DarkenBlendOp ();
		}
		/// <summary>
		/// Creates a new effect that will make the image look like a pencil sketch.
		/// </summary>
		/// <param name="pencilSize">Size of the pencil to use. Valid range is 1 - 20.</param>
		/// <param name="colorRange">Range of color to use. Valid range is -20 - 20.</param>
		public PencilSketchEffect (int pencilSize = 2, int colorRange = 0)
		{
			if (pencilSize < 1 || pencilSize > 20)
				throw new ArgumentOutOfRangeException ("pencilSize");
			if (colorRange < -20 || colorRange > 20)
				throw new ArgumentOutOfRangeException ("colorRange");

			this.pencil_size = pencilSize;
			this.color_range = colorRange;

			blur_effect = new GaussianBlurEffect (pencil_size);
			desaturate_op = new DesaturateOp ();
			invert_effect = new InvertColorsEffect ();
			bac_adjustment = new BrightnessContrastEffect (-color_range, -color_range);
			color_dodge_op = new ColorDodgeBlendOp ();
		}
		/// <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 ();
		}