Nez.Textures.GaussianBlur.createBlurredTexture C# (CSharp) Method

createBlurredTexture() public static method

public static createBlurredTexture ( Color srcData, int width, int height, double deviation = 1 ) : Color[]
srcData Color
width int
height int
deviation double
return Color[]
		public static Color[] createBlurredTexture( Color[] srcData, int width, int height, double deviation = 1 )
		{
			var matrixR = new double[width, height];
			var matrixG = new double[width, height];
			var matrixB = new double[width, height];
			var matrixA = new double[width, height];

			var destData = new Color[width * height];

			// first we calculate the grayscale and store it in matrix
			for( var i = 0; i < width; i++ )
			{
				for( var j = 0; j < height; j++ )
				{
					matrixR[i, j] = srcData[i + j * width].R;
					matrixG[i, j] = srcData[i + j * width].G;
					matrixB[i, j] = srcData[i + j * width].B;
					matrixA[i, j] = srcData[i + j * width].A;
				}
			}

			matrixR = GaussianBlur.gaussianConvolution( matrixR, deviation );
			matrixG = GaussianBlur.gaussianConvolution( matrixG, deviation );
			matrixB = GaussianBlur.gaussianConvolution( matrixB, deviation );
			matrixA = GaussianBlur.gaussianConvolution( matrixA, deviation );

			for( var i = 0; i < width; i++ )
			{
				for( var j = 0; j < height; j++ )
				{
					var r = (int)Math.Min( 255, matrixR[i, j] );
					var g = (int)Math.Min( 255, matrixG[i, j] );
					var b = (int)Math.Min( 255, matrixB[i, j] );
					var a = (int)Math.Min( 255, matrixA[i, j] );
					destData[i + j * width] = new Color( r, g, b, a );
				}
			}

			return destData;
		}

Same methods

GaussianBlur::createBlurredTexture ( Microsoft.Xna.Framework.Graphics.Texture2D image, double deviation = 1 ) : Microsoft.Xna.Framework.Graphics.Texture2D

Usage Example

 /// <summary>
 /// creates a new texture that is a gaussian blurred version of the original
 /// </summary>
 /// <returns>The blurred texture.</returns>
 /// <param name="image">Image.</param>
 /// <param name="deviation">Deviation.</param>
 public static Texture2D createBlurredTexture(Texture2D image, double deviation = 1)
 {
     return(GaussianBlur.createBlurredTexture(image, deviation));
 }
All Usage Examples Of Nez.Textures.GaussianBlur::createBlurredTexture