Есть ли способ конвертировать SKDocument в SKbitmap?

Я ищу способ преобразовать SKDocument, который создал PDF-файл, такой же SKDocument.CreatePdf(ManagedStreamForPdfMemoryStream);, в эквивалент изображения, например SKBitmap


person 1SaeedSalehi    schedule 14.01.2019    source источник


Ответы (1)


Это невозможно, SKDocument.CreatePdf создает файл PDF, который нельзя прочитать как растровое изображение с помощью SkiaSharp.

Как я упоминал в этом ответе, я бы предложил поискать способы загрузки PDF-файлов без связи со SkiaSharp - это разные задачи. https://stackoverflow.com/a/59513162/1117914

НО...

Если вы создаете PDF-файл с помощью SkiaSharp, просто используйте ту же логику, которую вы использовали для создания 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-файл и набор растровых изображений, которые можно отобразить на экране. Никакой дополнительной работы и загрузки файлов не требуется.

person Matthew    schedule 31.12.2019