小编zc2*_*c21的帖子

将画布保存到位图

我想将我的画布保存到位图.我在互联网上找到了一些例子,但所有这些都只保存了黑色图像(我的画布大小).我该怎么办?

码:

    public static void SaveCanvasToFile(Canvas surface, string filename)
    {
        Size size = new Size(surface.Width, surface.Height);

        surface.Measure(size);
        surface.Arrange(new Rect(size));

        // Create a render bitmap and push the surface to it
        RenderTargetBitmap renderBitmap =
          new RenderTargetBitmap(
            (int)size.Width,
            (int)size.Height,
            96d,
            96d,
            PixelFormats.Pbgra32);
        renderBitmap.Render(surface);

        // Create a file stream for saving image
        using (FileStream outStream = new FileStream(filename, FileMode.Create))
        {               
            BmpBitmapEncoder encoder = new BmpBitmapEncoder();
            // push the rendered bitmap to it
            encoder.Frames.Add(BitmapFrame.Create(renderBitmap));
            // save the data to the stream
            encoder.Save(outStream);
        }}
Run Code Online (Sandbox Code Playgroud)

c# wpf

8
推荐指数
2
解决办法
2万
查看次数

标签 统计

c# ×1

wpf ×1