The image processing filter implements a warping filter, which sets pixels in destination image to values from source image taken with specified offset (see WarpMap).
The filter accepts 8 bpp grayscale images and 24/32 color images for processing.
Sample usage:
// build warp map int width = image.Width; int height = image.Height; IntPoint[,] warpMap = new IntPoint[height, width]; int size = 8; int maxOffset = -size + 1; for ( int y = 0; y < height; y++ ) { for ( int x = 0; x < width; x++ ) { int dx = ( x / size ) * size - x; int dy = ( y / size ) * size - y; if ( dx + dy <= maxOffset ) { dx = ( x / size + 1 ) * size - 1 - x; } warpMap[y, x] = new IntPoint( dx, dy ); } } // create filter ImageWarp filter = new ImageWarp( warpMap ); // apply the filter Bitmap newImage = filter.Apply( image );
Initial image:
Result image: