public byte[] GetColors()
{
var color = new byte[3];
using(var memoryImage = new Bitmap(_samplePoints.CenterBox.Width, _samplePoints.CenterBox.Height, _graphics))
{
using (Graphics memoryGraphics = Graphics.FromImage(memoryImage))
{
var size = new System.Drawing.Size
{
Width = _samplePoints.CenterBox.Width,
Height = _samplePoints.CenterBox.Height
};
memoryGraphics.CopyFromScreen(_samplePoints.CenterBox.X,
_samplePoints.CenterBox.Y,
0,
0,
size,
CopyPixelOperation.SourceCopy);
var colors = new List<Color>();
foreach (var point in _samplePoints.Points)
{
var pixel = memoryImage.GetPixel(point.X - _samplePoints.CenterBox.X, point.Y - _samplePoints.CenterBox.Y);
var sampledColor = Color.FromArgb(pixel.R, pixel.G, pixel.B);
colors.Add(sampledColor);
}
var averageColor = _colorHelper.ComputeAverageColors(colors);
color = _colorMapper.Map(averageColor);
}
}
return color;
}