public void Draw(IBitmap canvas) { var bitmap = _bitmapProvider.GetItem(); for (var x = 0; x < canvas.Width; x++) { for (var y = 0; y < canvas.Height; y++) { canvas.SetPixel(x, y, _blending.Blend(canvas.GetPixel(x, y), bitmap.GetPixel(x, y).WithAlpha(_mask.GetOpacity(x, y)))); } } (bitmap as IDisposable)?.Dispose(); }