private static Cell SetCellColor(Bitmap image, int cellSize, int cellPositionX, int cellPositionY) { var cellSizeW = image.Width < cellPositionX + cellSize ? image.Width - cellPositionX : cellSize; var cellSizeH = image.Height < cellPositionY + cellSize ? image.Height - cellPositionY : cellSize; var pixels = GetImagePixels(image, cellPositionX, cellPositionY, cellSizeW, cellSizeH); var pixelColor = ImageGetter.GetAveragePixel(pixels); for (var pixelPositionX = 0; pixelPositionX < cellSizeW; pixelPositionX++) { for (var pixelPositionY = 0; pixelPositionY < cellSizeH; pixelPositionY++) { image.SetPixel(cellPositionX + pixelPositionX, cellPositionY + pixelPositionY, pixelColor); } } return(new Cell { X = cellPositionX, Y = cellPositionY, Resolution = new Resolution(cellSizeW, cellSizeH), Color = pixelColor }); }
private static async Task <List <CellData> > LoadSourceImages( string pathToImagesRootFolder, int cellSize, CancellationToken ct) { var images = ImageGetter.GetImages(pathToImagesRootFolder, cellSize, ct); var cells = images .TakeWhile(image => !ct.IsCancellationRequested) .Select(image => new CellData { Image = image, Color = ImageGetter.GetAveragePixel(GetImagePixels(image, 0, 0, image.Width, image.Height)) }).ToList(); FillCellBackground(cells); return(cells); }