private static Bitmap GenerateBitmap(DiagramArguments arguments, IClassDiagram cd) { var cdVisual = new ClassDiagramVisual(cd); using (var measureBitmap = new Bitmap(1, 1)) using (var measureGraphics = System.Drawing.Graphics.FromImage(measureBitmap)) { var graphicContext = new GdiPlusGraphicContext(measureGraphics); cdVisual.Layout(graphicContext); var renderBitmap = new Bitmap( (int)Math.Ceiling(cdVisual.Width + 1), (int)Math.Ceiling(cdVisual.Height + 1)); using (var renderGraphics = System.Drawing.Graphics.FromImage(renderBitmap)) { renderGraphics.Clear(Color.White); renderGraphics.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality; renderGraphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High; renderGraphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias; graphicContext = new GdiPlusGraphicContext(renderGraphics); cdVisual.Draw(graphicContext); } return(renderBitmap); } }
private static Bitmap GenerateBitmap(DiagramArguments arguments, ISequenceDiagram sequenceDiagram) { IStyle style; switch (arguments.Style) { case DiagramStyle.Sketchy: style = new SketchyStyle(); break; case DiagramStyle.Classic: style = new ClassicStyle(); break; default: throw new ArgumentOutOfRangeException("style"); } if (arguments.Debug) { style = new DebugStyle(style); } var sequenceDiagramVisual = new SequenceDiagramVisual(style, sequenceDiagram); using (var measureBitmap = new Bitmap(1, 1)) using (var measureGraphics = System.Drawing.Graphics.FromImage(measureBitmap)) { var graphicContext = new GdiPlusGraphicContext(measureGraphics); sequenceDiagramVisual.Layout(graphicContext); var renderBitmap = new Bitmap( (int)Math.Ceiling(sequenceDiagramVisual.Width + 1), (int)Math.Ceiling(sequenceDiagramVisual.Height + 1)); using (var renderGraphics = System.Drawing.Graphics.FromImage(renderBitmap)) { renderGraphics.Clear(Color.White); renderGraphics.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality; renderGraphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High; renderGraphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias; graphicContext = new GdiPlusGraphicContext(renderGraphics); sequenceDiagramVisual.Draw(graphicContext); } return(renderBitmap); } }