示例#1
0
        //Зберігає графік в форматі 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);
                    }
                }
            }
        }
示例#3
0
        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);
                }
            }
        }
示例#5
0
 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);
     }
 }
示例#6
0
        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);
                    }
                }
            }
        }