如何将画布转换为图像

时间:2015-03-24 08:57:24

标签: c# wpf image canvas

我希望将画布转换为WPF中的图像。我使用RenderTargetBitMap进行导出,效果很好。

我的问题是如果canvas的高度超过最大整数值,则在下面的代码中获得异常。

RenderTargetBitmap renderBitmap =new RenderTargetBitmap((int)canvas.Width,(int)canvas.Height,96d,96d,PixelFormats.Pbgra32);

错误消息是

  

“价值不在预期范围内”

那么如何将高度超过39,000像素的画布导出到图像?

1 个答案:

答案 0 :(得分:2)

您可以将Canvas置于ViewBox控件中,并将其尺寸设置为更合理的尺寸。完成后,您只需创建一个按比例缩小的图像:

RenderTargetBitmap renderBitmap = new RenderTargetBitmap(
    (int)viewBox.Width,(int)viewBox.Height, 96d, 96d, PixelFormats.Pbgra32);