使用OxyPlot从PlotModel

时间:2015-11-30 16:51:09

标签: c# graph export png oxyplot

OxyPlot Documentation Website上的文档中,它说要使用PngExporter类。 OxyPlot中不再存在此类,而是存在名为PngEncoderPngDecoder的类。我怀疑PngExporter.Export的等效方法是PngEncoder.Encode但是它要求OxyColor的2d数组叫做#34;像素"但我不知道从哪里得到这些数据从。 注意:导出到SVG或PDF有效但这个表单没用。

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

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

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

2 个答案:

答案 0 :(得分:3)

要添加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 :(得分:2)

使用[GitHub Oxyplot]文件构建图书馆,包括oxyplot和oxyplot.wpf,然后使用这些库代替。 请注意,导出PNG的任何方法都必须具有STAThread标记。