有什么方法可以将SKDocument转换为SKbitmap?

时间:2019-01-14 15:25:05

标签: c# .net skiasharp

我正在寻找一种方法,将创建了SKDocument.CreatePdf(ManagedStreamForPdfMemoryStream);这样的pdf的SKDocument转换为等效于SKBitmap的图像

1 个答案:

答案 0 :(得分:0)

这是不可能的,SKDocument.CreatePdf生成的PDF文件无法使用SkiaSharp读取位图。

正如我在这个答案中提到的,我建议寻找不与SkiaSharp关联的加载PDF的方法-它们是不同的任务。 https://stackoverflow.com/a/59513162/1117914

但是...

如果要使用SkiaSharp创建PDF,则只需使用与创建PDF相同的逻辑来创建位图即可。

您甚至可以使用类似SKNWayCanvas的图形进行平行绘制:https://docs.microsoft.com/dotnet/api/skiasharp.sknwaycanvas

var pdf = document.BeginPage();
var bmp = imageSurface.Canvas;

var canvas = new SKNWayCanvas(100, 100);
canvas.AddCanvas(pdf);
canvas.AddCanvas(bmp);

canvas.DrawRect(...); 

最后,您将获得一个PDF和一组可在屏幕上渲染的位图。无需额外的工作,也不需要加载文件。