diff --git a/src/ImageSharp/Processing/Extensions/PixelShaderExtensions.cs b/src/ImageSharp/Processing/Extensions/PixelShaderExtensions.cs
new file mode 100644
index 000000000..96783ba6e
--- /dev/null
+++ b/src/ImageSharp/Processing/Extensions/PixelShaderExtensions.cs
@@ -0,0 +1,36 @@
+// Copyright (c) Six Labors and contributors.
+// Licensed under the Apache License, Version 2.0.
+
+using SixLabors.ImageSharp.Processing.Delegates;
+using SixLabors.ImageSharp.Processing.Processors;
+using SixLabors.Primitives;
+
+namespace SixLabors.ImageSharp.Processing
+{
+ ///
+ /// Defines extension methods that allow the application of user defined pixel shaders to an .
+ ///
+ public static class PixelShaderExtensions
+ {
+ ///
+ /// Applies a user defined pixel shader to the image.
+ ///
+ /// The image this method extends.
+ /// The user defined pixel shader to use to modify images.
+ /// The to allow chaining of operations.
+ public static IImageProcessingContext ApplyPixelShaderProcessor(this IImageProcessingContext source, PixelShader pixelShader)
+ => source.ApplyProcessor(new DelegatePixelShaderProcessor(pixelShader));
+
+ ///
+ /// Applies a user defined pixel shader to the image.
+ ///
+ /// The image this method extends.
+ /// The user defined pixel shader to use to modify images.
+ ///
+ /// The structure that specifies the portion of the image object to alter.
+ ///
+ /// The to allow chaining of operations.
+ public static IImageProcessingContext BlackWhite(this IImageProcessingContext source, PixelShader pixelShader, Rectangle rectangle)
+ => source.ApplyProcessor(new DelegatePixelShaderProcessor(pixelShader), rectangle);
+ }
+}