Чтобы создать растровое изображение из холста с масштабированным размером, вам не нужно изменять размер или масштабировать холст.
Просто создайте VisualBrush из холста и нарисуйте прямоугольник соответствующего размера с ним вDrawingVisual.Использование DrawingVisual также позволяет избежать возможных проблем с полями и выравниванием.
var width = canvas.ActualWidth * scale;
var height = canvas.ActualHeight * scale;
var visual = new DrawingVisual();
using (var dc = visual.RenderOpen())
{
dc.DrawRectangle(new VisualBrush(canvas), null, new Rect(0, 0, width, height));
}
var rtb = new RenderTargetBitmap((int)width, (int)height, 96, 96, PixelFormats.Default);
rtb.Render(visual);