public static AvgColor[] ExtendHeight(this AvgColor[] colors, int height) { var extended = new AvgColor[colors.Length * height]; for (var i = 0; i < height; i++) { Array.Copy(colors, 0, extended, i * colors.Length, colors.Length); } return(extended); }
public static AvgColor[] FlipHorizontal(this AvgColor[] colors, int width) { if (colors == null || width <= 0) { return(colors); } var flipped = new AvgColor[colors.Length]; for (var i = 0; i < colors.Length; i += width) { for (int j = 0, k = width - 1; j < width; ++j, --k) { flipped[i + j] = colors[i + k]; } } return(flipped); }
public static AvgColor[] FlipVertical(this AvgColor[] colors, int width) { if (colors == null || width <= 0) { return(colors); } var flipped = new AvgColor[colors.Length]; for (int i = 0, j = colors.Length - width; i < colors.Length; i += width, j -= width) { for (var k = 0; k < width; ++k) { flipped[i + k] = colors[j + k]; } } return(flipped); }