【发布时间】:2019-12-31 19:22:54
【问题描述】:
我正在寻找一种方法来将创建了类似 SKDocument.CreatePdf(ManagedStreamForPdfMemoryStream); 的 pdf 的 SKDocument 转换为类似 SKBitmap 的图像
【问题讨论】:
我正在寻找一种方法来将创建了类似 SKDocument.CreatePdf(ManagedStreamForPdfMemoryStream); 的 pdf 的 SKDocument 转换为类似 SKBitmap 的图像
【问题讨论】:
这是不可能的,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 和一组可以在屏幕上呈现的位图。不需要额外的工作,也不需要加载文件。
【讨论】: