Я использую следующий код, чтобы сохранить изображение холстатолько верхняя часть изображения сохраняются
if (!Directory.Exists(DefaultSettings.MainPath + "//Skeleton Images//"))
Directory.CreateDirectory(DefaultSettings.MainPath + "//Skeleton Images//");
System.Windows.Size size = new System.Windows.Size(canvas.Width, canvas.Height);
canvas.Measure(size);
canvas.Arrange(new System.Windows.Rect(size));
RenderTargetBitmap renderBitmap = new RenderTargetBitmap((int)size.Width, (int)size.Height, 96d, 96d, PixelFormats.Pbgra32);
renderBitmap.Render(canvas);
using (FileStream outstream = new FileStream(DefaultSettings.MainPath + "//Skeleton Images//Kinected (" + images + ").jpg", FileMode.Create))
{
JpegBitmapEncoder cEncoder = new JpegBitmapEncoder();
cEncoder.Frames.Add(BitmapFrame.Create(renderBitmap));
cEncoder.Save(outstream);
}
Тем не менее, только сохраняя верхнюю часть изображения. Хотя размер изображения составляет 321x240, а размер холста также имеет тот же размер. Почему это происходит? этот же код, используемый до сохранения всего холста, так почему же это внезапно создает ошибки? Рисунок ниже, чтобы проиллюстрировать проблему. Также обратите внимание, что холст помещается поверх изображения, так как они визуализируются отдельно, а холст распространяется вплоть до текста «Цветная рамка».