使用Skiasharp将画布导出为图片

8

我有一个问题。

我有一个包含几个位图的skiasharp画布。现在我想将画布和位图导出为一张图片,但是我不知道如何做,也不确定是否可能实现。

有人可以帮助我吗?


3
展示你的代码,这样当有人回答时,他们可以复制你的代码并包含答案,使你的生活更轻松! - Kevin Hernandez
1
没有代码可以展示,因为我在询问是否有可能! - user12520502
2个回答

15

你可能正在寻找如何对这个 表面进行快照

using (var image = surface.Snapshot())
using (var data = image.Encode(SKEncodedImageFormat.Png, 80))
using (var stream = File.OpenWrite(Path.Combine(FolderPath, "1.png")))
{
    // save the data to a stream
    data.SaveTo(stream);
}

这与MShah的答案非常类似,只是从表面快照中获取,假设surface是您的Skia Surface的引用。


2
  1. To convert the bitmap to image:

    using (var image = SKImage.FromBitmap(yourBitmap))
    using (var data = image.Encode(SKEncodedImageFormat.Png, 80))
    {
    // save the data to a stream
    using (var stream = File.OpenWrite(Path.Combine(FolderPath, "1.png")))
          {
             data.SaveTo(stream);
           }
    }
    

    Edit:

  2. To convert canvas to png:

    SKImage mainCanvasImage = surface.Snapshot();
    SKBitmap TempTIFbitmap1 = SKBitmap.Decode(mainCanvasImage.Encode())
    

    Use the above code from point 1 to save this.

希望这能解决您的问题。

不,我想将整个画布转换为图像。画布包含多个位图! - user12520502
@Vreesie 如果您有多个位图要绘制在单个画布上,那么您可以捕获该表面的快照。请查看我的编辑。 - MShah

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接