使用OxyPlot从PlotModel生成PNG图像

4
OxyPlot文档网站的文档中可以看到,使用PngExporter类。但是,这个类在OxyPlot中已经不存在了,而是有名为PngEncoderPngDecoder的类。我怀疑与PngExporter.Export对应的方法是PngEncoder.Encode,但它要求一个名为“pixels”的OxyColor二维数组,我不知道该如何获取此数据。 注意:导出为SVG或PDF可以正常工作,但这个形式是无用的。

问题:我需要仅从代码中导出OxyPlot中PlotModel的PNG,但文档已过时。

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

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

文档中写道:“PNG导出器是在特定于平台的库(OxyPlot.Wpf、OxyPlot.WindowsForms)中实现的”-您是否已加载其中之一? - stuartd
1
使用GitHub版本的项目让我得到了OxyPlot.Wpf中的PngExporter类,虽然遇到了一些问题,但最终它已经工作了。感谢您的回复。 - Jamie Mair
2个回答

4

补充Jamie的回答,如果你想从类库中导出png文件,可以使用STAThread执行以下操作:

        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。


1
使用[GitHub Oxyplot]文件来构建库,包括oxyplot和oxyplot.wpf,并使用这些库代替原来的文件。 注意任何导出PNG的方法必须有STAThread标记。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接