static void DrawGraphLayout() { var graph = new Graph("graph"); graph.AddEdge("A", "B"); graph.AddEdge("B", "C"); graph.AddEdge("A", "C").Attr.Color = Color.Green; graph.FindNode("A").Attr.FillColor = Color.Magenta; graph.FindNode("B").Attr.FillColor = Color.MistyRose; var c = graph.FindNode("C"); c.Attr.FillColor = Color.PaleGreen; c.Attr.Shape = Shape.Diamond; graph.Attr.LayerDirection = LayerDirection.BT; var renderer = new GraphRenderer(graph); renderer.CalculateLayout(); int width = 1400; int height = 200; var bitmap = new System.Drawing.Bitmap(width, height, System.Drawing.Imaging.PixelFormat.Format32bppArgb); renderer.Render(bitmap); bitmap.Save("graph.bmp"); }
/// <summary> /// Render the graph to an image /// </summary> /// <param name="graph">The graph to be rendered</param> /// <param name="width">Width of the image. Will be calculated relatively if not provided</param> /// <param name="height">Height of the image. Will be calculated relatively if not provided</param> /// <returns>The rendered Bitmap</returns> public static Bitmap RenderImage(this Graph graph, int width = -1, int height = -1) { var renderer = new GraphRenderer(graph); renderer.CalculateLayout(); if (width == -1 && height == -1) { width = (int)(Math.Sqrt(graph.NodeCount)) * 150; } else if (width != -1 && height != -1) { if (width / height > graph.Width / graph.Height) { height = -1; } else { width = -1; } } if (width == -1) { width = (int)Math.Round(graph.Width / graph.Height * height); } else { height = (int)Math.Round(graph.Height / graph.Width * width); } var image = new Bitmap(width, height); renderer.Render(image); return(image); }
public void SaveGraphToFile(FeatherVaneGraph data, int width, int height, string filename) { Graph gleeGraph = CreateGraph(data); var renderer = new GraphRenderer(gleeGraph); renderer.CalculateLayout(); var bitmap = new Bitmap(width, height, PixelFormat.Format32bppArgb); renderer.Render(bitmap); bitmap.Save(filename, ImageFormat.Png); }
public void SaveGraphToFile(StateMachineGraphData data, int width, int height, string filename) { Graph gleeGraph = CreateGraph(data); var renderer = new GraphRenderer(gleeGraph); renderer.CalculateLayout(); var bitmap = new Bitmap(width, height, PixelFormat.Format32bppArgb); renderer.Render(bitmap); Trace.WriteLine("Saving graph to " + filename); bitmap.Save(filename, ImageFormat.Png); }
private void DrawPreviewAutomata() { if (WindowState == FormWindowState.Minimized) { return; } var graph = new AutomataGraph(Automata); try { if (SourceStateIdComboBox.SelectedIndex == -1 || TargetStateIdComboBox.SelectedIndex == -1) { return; } var sourceDrawingState = graph.FindNode(SourceStateIdComboBox.SelectedItem as string) as State; var targetDrawingState = graph.FindNode(TargetStateIdComboBox.SelectedItem as string) as State; var transition = ConstructTransition(sourceDrawingState.LogicState.Id, targetDrawingState.LogicState.Id); var edge = new Edge(sourceDrawingState, targetDrawingState, transition); graph.SetupEdge(edge); edge.Attr.Color = edge.Label.FontColor = MsaglColor.Blue; graph.AddPrecalculatedEdge(edge); ErrorLabel.Text = ""; } catch { ErrorLabel.Text = "A megadott szimbólum nem elérhető az ábécében!"; } var renderer = new GraphRenderer(graph); renderer.CalculateLayout(); using (var graphics = DrawPanel.CreateGraphics()) { graphics.SmoothingMode = SmoothingMode.HighQuality; graphics.TextRenderingHint = TextRenderingHint.AntiAliasGridFit; graphics.CompositingQuality = CompositingQuality.HighQuality; graphics.InterpolationMode = InterpolationMode.HighQualityBicubic; renderer.Render(graphics, 0, 0, DrawPanel.Width, DrawPanel.Height); } }
static void DrawGraphLayout(CspModel model) { var graph = new Graph(); var createdEdges = new List <string>(); //graph.Directed = true; graph.Attr.SimpleStretch = false; //graph.LayoutAlgorithmSettings.PackingMethod = Microsoft.Msagl.Core.Layout.PackingMethod.Compact; //graph.LayoutAlgorithmSettings.EdgeRoutingSettings.Padding = 10; foreach (var variable in model.Variables) { var n = graph.AddNode($"{variable.Name}={variable.Value}"); if (variable.Value == -1) { n.Attr.FillColor = Color.Yellow; } n.Attr.Shape = Shape.Box; foreach (var constraint in model.Constraints.Where(c => c.GetVariables().Any(v => v.GetVariable().Name == variable.Name))) { graph.AddNode(constraint.ToString()); graph.AddEdge(variable.Name + "=" + variable.Value, constraint.ToString()); foreach (var target in constraint.GetVariables()) { if (target.GetVariable().Name != variable.Name) { if (!createdEdges.Contains(constraint.ToString() + "->" + target.GetVariable().Name)) { graph.AddNode(target.GetVariable().Name + "=" + target.GetVariable().Value); graph.AddEdge(constraint.ToString(), target.GetVariable().Name + "=" + target.GetVariable().Value); createdEdges.Add(constraint.ToString() + "->" + target.GetVariable().Name); } } } } } graph.CreateGeometryGraph(); var renderer = new GraphRenderer(graph); int width = 600; int height = 600; var bitmap = new System.Drawing.Bitmap(width, height, System.Drawing.Imaging.PixelFormat.Format32bppArgb); renderer.CalculateLayout(); renderer.Render(bitmap); bitmap.Save("graph.bmp"); }
private void _saveImage_Click(object sender, EventArgs e) { saveFileDialog.Title = "Save As"; saveFileDialog.Filter = "PNG (*.png)|*.png"; saveFileDialog.DefaultExt = ".png"; saveFileDialog.FileName = Regex.Replace(_grapher.Name, @"\.[^.]*$", ".png"); if (saveFileDialog.ShowDialog() == DialogResult.OK) { if (viewer.Graph != null) { GraphRenderer renderer = new GraphRenderer(viewer.Graph); renderer.CalculateLayout(); System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap((int)viewer.GraphWidth, (int)viewer.GraphHeight); renderer.Render(bitmap); bitmap.Save(saveFileDialog.FileName, System.Drawing.Imaging.ImageFormat.Png); toolStripProgressBar.Visible = false; } } }
public static void saveGleeGraphAsImage(String sPathToImage, Graph gGraph) { //String sImagePath = config.getTempFileNameInO2TempDirectory() + ".png";// System.IO.Path.Combine(DI.config.O2TempDir, "test.png"); // Saving map var grGraphRendere = new GraphRenderer(gGraph); int iWidth = 1024; int iHeight = 1024; grGraphRendere.CalculateLayout(); iWidth = (int) gGraph.Width; iHeight = (int) gGraph.Height; // DI.log.debug("Width: {0} , Height: {1}", iWidth.ToString(), iHeight.ToString()); //Bitmap bitmap = new Bitmap(width, (int)(gGraph.Height * (width / gGraph.Width)),System.Drawing.Imaging.PixelFormat.Format32bppPArgb); var bitmap = new Bitmap(iWidth, iHeight, PixelFormat.Format32bppPArgb); grGraphRendere.Render(bitmap); bitmap.Save(sPathToImage); // DI.log.debug("GLEE graph saved as bitmap image to: {0}", sPathToImage); }