【问题标题】:Skiasharp Export canvas to image [closed]Skiasharp 将画布导出到图像 [关闭]
【发布时间】:2020-04-11 01:02:44
【问题描述】:

我有一个问题。 我有一个带有一些位图的skiasharp 画布。现在我想将带有位图的画布导出为图像,但我不知道该怎么做,或者是否可能。

有人可以帮我吗?

【问题讨论】:

  • 显示您的代码,这样当有人回答时,他们可以复制您的代码并包含答案,让您的生活更轻松!
  • 没有代码可以显示,因为我在问有没有可能!

标签: xamarin xamarin.forms xamarin.android xamarin.ios skiasharp


【解决方案1】:
  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. 将画布转换为 png:

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

    使用上面第 1 点的代码来保存它。

希望这能解决您的问题。

【讨论】:

  • 不,我想将整个画布转换为图像。画布包含多个位图!
  • @Vreesie 如果您在单个画布上绘制多个位图,那么您可以捕获该表面快照。请找到我的编辑。
【解决方案2】:

您可能正在寻找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 表面的引用。

【讨论】:

    猜你喜欢
    • 2012-05-28
    • 1970-01-01
    • 2021-11-25
    • 2011-03-02
    • 1970-01-01
    • 2012-02-09
    • 2013-02-01
    • 2012-02-12
    • 1970-01-01
    相关资源
    最近更新 更多