2015-11-30 68 views
4

OxyPlot Documentation Website的文檔中,它表示使用PngExporter類。該類不再存在於OxyPlot中,而是存在稱爲PngEncoderPngDecoder的類。我懷疑PngExporter.Export的等效方法是PngEncoder.Encode然而它要求一個叫做「像素」的OxyColor二維數組,但我不知道從哪裏得到這些數據。 注意:導出到SVG或PDF工作,但這種形式是無用的。使用OxyPlot從PlotModel渲染png圖像

問題:我需要從OxyPlot中的PlotModel代碼中導出PNG,但文檔已過時。

這是我已被告知使用的代碼:

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

它在文檔中說:「PNG出口商是在特定於平臺的庫(OxyPlot.Wpf,OxyPlot.WindowsForms」)中實現的 - 您是否已加載其中的一個? – stuartd

+1

使用項目的GitHub版本允許我獲取PngExporter在OxyPlot.Wpf中的類,遇到了一些問題,但最終它已經工作了,謝謝你的回覆。 –

回答

2

使用[GitHub的Oxyplot]文件來構建圖書館的,既oxyplot和oxyplot.wpf,然後使用這些庫來代替。 注意導出PNG的任何方法必須具有STAThread標記。

2

爲了增加傑米的答案,如果你要導出一個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。