public void FirstTest() { using var imageStream = new FileStream(@"C:\Projects\GoodEnough.Biology\Assets\tanuki.jpg", FileMode.Open); using var image = Image.Load <Rgba32>(imageStream); using var cts = new CancellationTokenSource(); using var eye = new HumanEye(width: image.Width, height: image.Height, cts.Token); var writer = eye.SensoryFlow.Writer; if (image.TryGetSinglePixelSpan(out var pixels)) { for (var i = 0; i < pixels.Length; i++) { // writer.TryWrite((pixels[i]); } //writer.TryComplete(); } //Task.Delay(50000).Wait(); // //cts.Cancel(); // //Span<Rgba32> retinaSpan = MemoryMarshal.Cast<byte, Rgba32>(eye.Retina.Grid.GetSpan()); // //retinaSpan.ToArray().Should().ContainInOrder(pixels.ToArray()); }
public static async Task Main() { using var imageStream = new FileStream(@"C:\Projects\GoodEnough.Biology\Assets\tanuki.jpg", FileMode.Open); using var image = Image.Load <Rgba32>(imageStream); using var cts = new CancellationTokenSource(); using var eye = new HumanEye(width: image.Width, height: image.Height, cts.Token); var writer = eye.SensoryFlow.Writer; while (true) { for (var y = 0; y < image.Height; y++) { for (var x = 0; x < image.Width; x++) { await writer.WriteAsync((x, y, image[x, y]));