Skiasharp 导出 canvas 到图像

Skiasharp Export canvas to image

我有一个问题。 我有一个带有一些位图的 skiasharp canvas。现在我想将带有位图的 canvas 导出到图像,但我不知道该怎么做,或者如果可能的话。

有人可以帮助我吗?

  1. 要将位图转换为图像:

    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);
           }
    }
    

    编辑:

  2. 要将 canvas 转换为 png:

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

    使用第 1 点中的上述代码保存。

希望这能解决您的问题。

您可能想参加 Snapshot of the Surface

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 的引用。