C# 使用OxyPlot从PlotModel渲染png图像

C# 使用OxyPlot从PlotModel渲染png图像,c#,graph,export,png,oxyplot,C#,Graph,Export,Png,Oxyplot,从上的文档中,它说要使用PngExporter类。此类不再存在于OxyPlot中,而是有名为PngEncoder和PngDecoder的类。我怀疑PngExporter.Export的等效方法是PngEncoder.Encode,但是它要求一个名为“像素”的二维数组OxyColor,但我不知道从何处获取此数据。 注意:导出到SVG或PDF是可行的,但此表单没有用处 问题:我只需要从OxyPlot中的绘图模型的代码中导出PNG,但文档已过时 这是我被告知要使用的代码: using (var st

从上的文档中,它说要使用
PngExporter
类。此类不再存在于OxyPlot中,而是有名为
PngEncoder
PngDecoder
的类。我怀疑
PngExporter.Export
的等效方法是
PngEncoder.Encode
,但是它要求一个名为“像素”的二维数组
OxyColor
,但我不知道从何处获取此数据。 注意:导出到SVG或PDF是可行的,但此表单没有用处

问题:我只需要从OxyPlot中的
绘图模型的代码中导出PNG,但文档已过时

这是我被告知要使用的代码:

 using (var stream = File.Create(fileName))
    {
        var pngExporter = new PngExporter();
        pngExporter.Export(plotModel, stream, 600, 400, Brushes.White);
    }

使用[GitHub Oxyplot]文件来构建库,包括Oxyplot和Oxyplot.wpf,然后使用这些库。
注:任何导出PNG的方法都必须具有StatThread标记。

要添加到Jamie的答案中,如果您想从类库导出PNG,可以使用StatThread执行以下操作:

        var thread = new Thread(() =>
        {
            PngExporter.Export(plotModel, @"C:\file.png", 600, 400, OxyColors.White);
        });
        thread.SetApartmentState(ApartmentState.STA);
        thread.Start();
        thread.Join();

这使用的是最新的预发行版v1.0.0-unstable2100。

文档中说“PNG导出器在特定于平台的库(OxyPlot.Wpf、OxyPlot.WindowsForms)中实现。”-您加载了其中一个吗?使用GitHub版本的项目使我能够在OxyPlot.Wpf中获取PngExporter类,遇到了一些问题,但最终还是成功了。感谢您的回复。