public virtual Pixel1D SetColors(int startChannel, ColorBrightness[] colorBrightness)
{
int? firstChannel = null;
int lastChannel = 0;
for (int i = 0; i < colorBrightness.Length; i++)
{
if (i + startChannel < 0)
continue;
if (i + startChannel >= Pixels)
continue;
if (!firstChannel.HasValue)
firstChannel = i + startChannel;
lastChannel = i + startChannel;
this.color[i + startChannel] = colorBrightness[i].Color;
this.brightness[i + startChannel] = colorBrightness[i].Brightness;
}
if (firstChannel.HasValue)
RaiseMultiPixelChanged(firstChannel.Value, lastChannel - firstChannel.Value + 1);
return this;
}