Applies to: Nevron Chart for .NET
How to generate chart image without displaying the WinForms control?
Nevron Chart control fully supports windowless image generation (e.g. without being added to a form). For example, you can use the ImageExporter.RenderToBitmap method to generate an image without displaying the WinForms control.

The following code snippets show how to generate a 400x300 bitmap image:
[C#]
using System.Drawing;
using System.Drawing.Imaging;
using System.Windows.Forms;
using Nevron.Chart;
using Nevron.Chart.WinForm;
using Nevron.GraphicsCore;
...
using (Bitmap bmp = new Bitmap(400, 300, PixelFormat.Format32bppArgb))
{
using (NChartControl chartControl = new NChartControl())
{
NChart chart = chartControl.Charts[0];
chart.DisplayOnLegend.Visible = false;
chart.Enable3D = true;
chart.Width = 100;
chart.Height = 50;
chart.Depth = 10;
chart.Projection.SetPredefinedProjection(PredefinedProjection.Perspective1);
chart.LightModel.SetPredefinedLightModel(PredefinedLightModel.ShinyCameraLight);
NBarSeries bar = new NBarSeries();
bar.Values.Add(10);
bar.Values.Add(20);
bar.Values.Add(30);
chart.Series.Add(bar);
NStyleSheet styleSheet = NStyleSheet.CreatePredefinedStyleSheet(PredefinedStyleSheet.BrightMultiColor);
styleSheet.Apply(chartControl.Document);
chartControl.ImageExporter.RenderToBitmap(bmp, false);
}
bmp.Save("c:\\temp\\chart1.bmp");
}
[VB.NET]
Imports System.Drawing
Imports System.Drawing.Imaging
Imports System.Windows.Forms
Imports Nevron.Chart
Imports Nevron.Chart.WinForm
Imports Nevron.GraphicsCore
...
Using bmp As New Bitmap(400, 300, PixelFormat.Format32bppArgb)
Using chartControl As New NChartControl()
Dim chart As NChart = chartControl.Charts(0)
chart.DisplayOnLegend.Visible = False
chart.Enable3D = True
chart.Width = 100
chart.Height = 50
chart.Depth = 10
chart.Projection.SetPredefinedProjection(PredefinedProjection.Perspective1)
chart.LightModel.SetPredefinedLightModel(PredefinedLightModel.ShinyCameraLight)
Dim bar As New NBarSeries()
bar.Values.Add(10)
bar.Values.Add(20)
bar.Values.Add(30)
chart.Series.Add(bar)
Dim styleSheet As NStyleSheet = NStyleSheet.CreatePredefinedStyleSheet(PredefinedStyleSheet.BrightMultiColor)
styleSheet.Apply(chartControl.Document)
chartControl.ImageExporter.RenderToBitmap(bmp, False)
End Using
bmp.Save("c:\temp\chart1.bmp")
End Using
This will create a 400x300 bitmap with a simple bar chart.
You can also consider using the SaveToFile function:
[C#]
using System.Windows.Forms;
using Nevron.Chart;
using Nevron.Chart.WinForm;
using Nevron.GraphicsCore;
...
using (NChartControl chartControl = new NChartControl())
{
NChart chart = chartControl.Charts[0];
NBarSeries bar = new NBarSeries();
bar.Values.Add(10);
bar.Values.Add(20);
bar.Values.Add(30);
chart.Series.Add(bar);
chartControl.ImageExporter.SaveToFile("c:\\temp\\chart.png", new NSize(400, 300), NResolution.ScreenResolution, new NPngImageFormat());
}
[VB.NET]
Imports System.Windows.Forms
Imports Nevron.Chart
Imports Nevron.Chart.WinForm
Imports Nevron.GraphicsCore
...
Using chartControl As New NChartControl()
Dim chart As NChart = chartControl.Charts(0)
Dim bar As New NBarSeries()
bar.Values.Add(10)
bar.Values.Add(20)
bar.Values.Add(30)
chart.Series.Add(bar)
chartControl.ImageExporter.SaveToFile("c:\temp\chart.png", New NSize(400, 300), NResolution.ScreenResolution, New NPngImageFormat())
End Using
Article ID: 211, Created On: 3/19/2012, Modified: 3/19/2012