RenderToSize 参数二无法将 “System.Drawing.Graphics”转换为“SkiaSharp.SKCanvas”
时间: 2024-02-05 14:02:50 AIGC 浏览: 247
非常抱歉,我之前的回答有误。如果你使用的是 SkiaSharp 库而不是 System.Drawing,那么你可以使用 SkiaSharp 库的绘图对象来替代 System.Drawing.Graphics。以下是修正后的代码示例:
```csharp
using Aspose.Words;
using SkiaSharp;
public void ConvertWordToImages(string filePath)
{
// 加载 Word 文档
Document doc = new Document(filePath);
// 遍历每个页面
for (int pageIndex = 0; pageIndex < doc.PageCount; pageIndex++)
{
// 创建一个 SKBitmap 对象,用于保存页面图片
SKBitmap bitmap = new SKBitmap(doc.Pages[pageIndex].PageSetup.PageWidth, doc.Pages[pageIndex].PageSetup.PageHeight);
// 创建一个 SKCanvas 对象,用于绘制页面内容
using (SKCanvas canvas = new SKCanvas(bitmap))
{
// 清空画布
canvas.Clear(SKColors.White);
// 创建一个 SKGraphics 对象,用于将 SKCanvas 转换为 Aspose.Words 的渲染器
using (SKGraphics graphics = new SKGraphics(canvas))
{
// 渲染页面内容到画布
doc.RenderToSize(pageIndex, graphics, 0, 0, doc.Pages[pageIndex].PageSetup.PageWidth, doc.Pages[pageIndex].PageSetup.PageHeight);
}
// 保存图片
string imagePath = $"Page{pageIndex + 1}.png";
using (SKImage skImage = SKImage.FromBitmap(bitmap))
{
using (SKData data = skImage.Encode())
{
using (System.IO.Stream stream = System.IO.File.OpenWrite(imagePath))
{
data.SaveTo(stream);
}
}
}
}
}
}
```
在上述代码中,我们使用 SkiaSharp 库的 SKBitmap、SKCanvas 和 SKGraphics 来代替 System.Drawing.Bitmap、System.Drawing.Graphics 和 System.Drawing.Color。最后,我们使用 SkiaSharp 库的方法来保存图片。请确保已将 SkiaSharp 包安装到你的项目中。
非常抱歉之前的错误回答造成了困扰,希望这次能为你提供正确的帮助。如有任何问题,请随时提问。
阅读全文
相关推荐


















