【发布时间】:2020-04-25 06:48:05
【问题描述】:
我正在寻找从 Windows 商店应用程序中保存画布的方法,我发现:
private void CreateSaveBitmap(Canvas canvas, string filename)
{
RenderTargetBitmap renderBitmap = new RenderTargetBitmap(
(int)canvas.Width, (int)canvas.Height,
96d, 96d, PixelFormats.Pbgra32);
// needed otherwise the image output is black
canvas.Measure(new Size((int)canvas.Width, (int)canvas.Height));
canvas.Arrange(new Rect(new Size((int)canvas.Width, (int)canvas.Height)));
renderBitmap.Render(canvas);
//JpegBitmapEncoder encoder = new JpegBitmapEncoder();
PngBitmapEncoder encoder = new PngBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(renderBitmap));
using (FileStream file = File.Create(filename))
{
encoder.Save(file);
}
}
但该方法在 Windows 商店应用程序中不起作用(RenderTargetBitmap 没有 5 个参数构造函数,PngBitmapEncoder 没有)。所以我的问题是如何将 Windows 商店应用程序中的画布保存为某种图像文件(jpg、png 等)。有什么方法可以做到这一点?
【问题讨论】:
-
@Dick,如果您在 Xaml 代码中放置画布宽度和高度,则无需编写 canvas.ActualWidth 或高度。显示这种类型的异常意味着您没有设置画布的宽度和高度。这就是它询问实际高度或宽度的原因。检查一下。快乐编码,
标签: c# canvas windows-store-apps visual-studio-2013