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类,遇到了一些问题,但最终还是成功了。感谢您的回复。