Save to file

I added functionality for the program to save positions to a file, X and Y as pixel positions and Z as depth. Each joint is labeled (H: Head, WL: Wrist Left, and so on), and flagged as tracked or inferred. The screenshot is of a skeleton in “sitting position”, hence no joints below the spine.

Working on a Python script to read the file and output another with the positions averaged out, in order to reduce noise.

Render canvas to bitmap

public void Export(Uri path, Canvas surface)
if (path == null) return;

// Save current canvas transform
Transform transform = surface.LayoutTransform;
// reset current transform (in case it is scaled or rotated)
surface.LayoutTransform = null;

// Get the size of canvas
Size size = new Size(surface.Width, surface.Height);
// Measure and arrange the surface
surface.Arrange(new Rect(size));

// Create a render bitmap and push the surface to it
RenderTargetBitmap renderBitmap =
new RenderTargetBitmap(


From stackoverflow.

Example of usage from the C#-library: RenderTargetBitmap