我希望将画布转换为WPF中的图像。我使用RenderTargetBitMap进行导出,效果很好。
我的问题是如果canvas的高度超过最大整数值,则在下面的代码中获得异常。
RenderTargetBitmap renderBitmap =new RenderTargetBitmap((int)canvas.Width,(int)canvas.Height,96d,96d,PixelFormats.Pbgra32);
错误消息是
“价值不在预期范围内”
那么如何将高度超过39,000像素的画布导出到图像?
答案 0 :(得分:2)
您可以将Canvas
置于ViewBox
控件中,并将其尺寸设置为更合理的尺寸。完成后,您只需创建一个按比例缩小的图像:
RenderTargetBitmap renderBitmap = new RenderTargetBitmap(
(int)viewBox.Width,(int)viewBox.Height, 96d, 96d, PixelFormats.Pbgra32);