I have a problem with saving canvas to BMP file (or any other type).
I'm trying to save my InkCanvas like this:
int margin = (int)canvas.Margin.Left;
int width = (int)canvas.ActualWidth -margin;
int height = (int)canvas.ActualHeight -margin;
//render ink to bitmap
RenderTargetBitmap renderBitmap =
new RenderTargetBitmap(width, height, 96d, 96d, PixelFormats.Default);
renderBitmap.Render(canvas);
//save the ink to a memory stream
BitmapEncoder encoder;
encoder = new BmpBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(renderBitmap));
encoder.Save(myStream);
But i always got an image with a black borders from left and top, equal size from point (0,0) of my window to my canvas. What i do wrong?
From what I have read Bitmaps cannot handle transparent backgrounds. So when the bitmap is created it leaves the pixels as black. Just change your ink canvas to have a white background (or whatever color you want). Check this out: WPF - Black Background surrounding saved canvas as jpeg also you may want to try to get rid of the minus margins and just use the whole ink canvas when creating the image.