public void SetColorRange(
Color color,
double? brightness = 1.0,
int startPosition = 0,
int? length = null,
IControlToken token = null)
{
IData data = GetFrameBuffer(token, this);
Color injectColor;
if (brightness.GetValueOrDefault(1.0) < 1.0)
injectColor = GetColorFromColorAndBrightness(color, brightness.Value);
else
injectColor = color;
if (!length.HasValue)
length = this.pixelCount;
else
{
if (startPosition + length.Value > this.pixelCount)
length = this.pixelCount - startPosition;
}
var bitmap = (Bitmap)data[DataElements.PixelBitmap];
lock (this.lockObject)
{
using (var g = Graphics.FromImage(bitmap))
using (var b = new SolidBrush(injectColor))
{
g.FillRectangle(b, startPosition, 0, length.Value, 1);
}
}
PushOutput(token);
}