//Зберігає графік в форматі svg private void svgToolStripMenuItem_Click(object sender, EventArgs e) { //if there is no graph drawn show error message if ((Graph.graphList != null) && (!Graph.graphList.Any())) { string message = rm.GetString("NoGraph"); string title = rm.GetString("Error"); MessageBox.Show(message, title); } else { SaveFileDialog saveFile = new SaveFileDialog(); string desktop = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); //desktop path saveFile.InitialDirectory = desktop; saveFile.Filter = "Svg Files(*.svg) |*.svg;"; saveFile.Title = rm.GetString("SaveImg"); saveFile.FileName = "graph"; saveFile.AddExtension = true; saveFile.DefaultExt = "svg"; saveFile.FilterIndex = 2; saveFile.RestoreDirectory = true; if (saveFile.ShowDialog() == DialogResult.OK) { var svgExporter = new OxyPlot.WindowsForms.SvgExporter { Width = 600, Height = 400 }; svgExporter.ExportToFile(myModel, saveFile.FileName); } } }
private static async Task Export(PlotModel model, string name) { var fileName = Path.Combine(OutputDirectory, name + ".png"); var directory = Path.GetDirectoryName(fileName) ?? "."; if (!Directory.Exists(directory)) { Directory.CreateDirectory(directory); } if (ExportPng) { Console.WriteLine(fileName); using (var stream = File.Create(fileName)) { var exporter = new PngExporter { Width = 600, Height = 400 }; exporter.Export(model, stream); } await OptimizePng(fileName); } if (ExportPdf) { fileName = Path.ChangeExtension(fileName, ".pdf"); Console.WriteLine(fileName); using (var stream = File.Create(fileName)) { var exporter = new PdfExporter { Width = 600d * 72 / 96, Height = 400d * 72 / 96 }; exporter.Export(model, stream); } } if (ExportSvg) { fileName = Path.ChangeExtension(fileName, ".svg"); Console.WriteLine(fileName); using (var stream = File.Create(fileName)) { using (var exporter = new OxyPlot.WindowsForms.SvgExporter { Width = 600, Height = 400, IsDocument = true }) { exporter.Export(model, stream); } } } }
public async Task <HttpResponseMessage> Get(string source, int width = 900, int height = 600) { var options = ScriptOptions.Default.WithReferences(typeof(PlotModel).Assembly) .WithImports("System", "OxyPlot", "OxyPlot.Axes", "OxyPlot.Series", "OxyPlot.Annotations"); var result = await CSharpScript.EvaluateAsync(source, options); var model = result as PlotModel; var contentType = this.Request.Content.Headers.ContentType; var mediaType = "image/png"; if (contentType != null) { mediaType = contentType.MediaType; } switch (mediaType) { case "image/svg+xml": { var e = new OxyPlot.WindowsForms.SvgExporter { Width = width, Height = height }; var svg = e.ExportToString(model); var res = this.Request.CreateResponse(HttpStatusCode.OK); res.Content = new StringContent(svg, Encoding.UTF8); res.Content.Headers.ContentType = new MediaTypeHeaderValue("image/svg+xml"); return(res); } default: { var p = new PngExporter { Width = width, Height = height }; var stream = new MemoryStream(); p.Export(model, stream); var res = this.Request.CreateResponse(HttpStatusCode.OK); res.Content = new ByteArrayContent(stream.ToArray()); res.Content.Headers.ContentType = new MediaTypeHeaderValue("image/png"); return(res); } } }
private static void Export(PlotModel model, string name) { var fileName = Path.Combine(OutputDirectory, name + ".png"); Console.WriteLine(fileName); using (var stream = File.Create(fileName)) { var exporter = new PngExporter { Width = 600, Height = 400 }; exporter.Export(model, stream); } fileName = Path.ChangeExtension(fileName, ".pdf"); Console.WriteLine(fileName); using (var stream = File.Create(fileName)) { var exporter = new PdfExporter { Width = 600d * 72 / 96, Height = 400d * 72 / 96 }; exporter.Export(model, stream); } fileName = Path.ChangeExtension(fileName, ".svg"); Console.WriteLine(fileName); using (var stream = File.Create(fileName)) { using (var exporter = new OxyPlot.WindowsForms.SvgExporter { Width = 600, Height = 400, IsDocument = true }) { exporter.Export(model, stream); } } }
public void Save(string path, int width, int height, int dpi = 96) { using (var stream = File.Create(path + ".png")) { var pngexporter = new OxyPlot.WindowsForms.PngExporter { Width = width, Height = height, Resolution = dpi }; pngexporter.Export(Model, stream); } using (var stream = File.Create(path + ".svg")) { var svgexporter = new OxyPlot.WindowsForms.SvgExporter { Width = width, Height = height, IsDocument = true }; svgexporter.Export(Model, stream); } }
private static void Export(PlotModel model, string name) { var fileName = Path.Combine(OutputDirectory, name + ".png"); var directory = Path.GetDirectoryName(fileName) ?? "."; if (!Directory.Exists(directory)) { Directory.CreateDirectory(directory); } if (ExportPng) { Console.WriteLine(fileName); using (var stream = File.Create(fileName)) { var exporter = new PngExporter { Width = 600, Height = 400 }; exporter.Export(model, stream); } OptimizePng(fileName); } if (ExportPdf) { fileName = Path.ChangeExtension(fileName, ".pdf"); Console.WriteLine(fileName); using (var stream = File.Create(fileName)) { var exporter = new PdfExporter { Width = 600d * 72 / 96, Height = 400d * 72 / 96 }; exporter.Export(model, stream); } } if (ExportSvg) { fileName = Path.ChangeExtension(fileName, ".svg"); Console.WriteLine(fileName); using (var stream = File.Create(fileName)) { using (var exporter = new OxyPlot.WindowsForms.SvgExporter { Width = 600, Height = 400, IsDocument = true }) { exporter.Export(model, stream); } } } }