【发布时间】:2014-02-16 01:00:06
【问题描述】:
我正在使用以下代码来保存画布的图片
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,画布大小也是一样的大小。为什么会这样?之前使用的相同代码保存了整个画布,那么为什么会突然产生错误?下图说明问题。另请注意,画布放置在图像顶部,因为它们是单独渲染的,并且画布一直延伸到“色框”文本。
【问题讨论】:
标签: c# wpf-controls