private RgbArray GetTestRgbArray(int x = 256, int y = 256) { var rgbArray = new RgbArray(new Color[x][]); for (int i = 0; i < x; i++) { rgbArray.data[i] = new Color[y]; for (int j = 0; j < y; j++) { var magnitude = (int)((i / (float)x + j / (float)y) * 128); rgbArray.data[i][j] = Color.FromArgb(magnitude, magnitude, magnitude); } } return(rgbArray); }
private static void SaveRGBArrayAsImage(RgbArray rgbArray, DirectoryInfo outputDir) { var width = rgbArray.Width; var height = rgbArray.Height; using var image = new Image <Rgb24>(width, height); for (var x = 0; x < width; x++) { for (var y = 0; y < height; y++) { var pixel = rgbArray.data[y][x]; image[x, y] = new Rgb24(pixel.R, pixel.G, pixel.B); } } using var stream = new FileStream(Path.Combine(outputDir.FullName, "output.jpg"), FileMode.OpenOrCreate, FileAccess.ReadWrite); image.SaveAsJpeg(stream); }