Создание образа с помощью библиотеки управления диаграммами Microsoft.NET без контроля
Можно ли создавать изображения (jpeg, png и т.д.) с помощью библиотеки Microsoft Chart Controls без создания экземпляра класса управления WinForm или ASP.NET? Все примеры, которые я видел, используют компонент управления. Мне нужно создать библиотеку, которая содержит простые методы, которые берут данные для построения и возвращает новое изображение диаграммы. Примеры:
public byte[] GeneratePlot(IList<SeriesData> series)
{
// generate and return JPEG
}
public void GeneratePlot(IList<SeriesData> series, Stream outputStream)
{
// generate JPEG and write to stream
}
Если это невозможно:
- Вы бы порекомендовали
создание/удаление нового графика
каждый раз, когда пользователь вызывает
Метод GeneratePlot()?
- есть
другая библиотека .NET(предпочтительно
бесплатно), которые вы бы порекомендовали?
Спасибо
Ответы
Ответ 1
Да, это возможно:
using System.Windows.Forms.DataVisualization.Charting;
using System.IO;
...
public void GeneratePlot(IList<DataPoint> series, Stream outputStream) {
using (var ch = new Chart()) {
ch.ChartAreas.Add(new ChartArea());
var s = new Series();
foreach (var pnt in series) s.Points.Add(pnt);
ch.Series.Add(s);
ch.SaveImage(outputStream, ChartImageFormat.Jpeg);
}
}
Ответ 2
Если все, что вы хотите, это графические изображения. Затем вы можете использовать элементы управления диаграммой для сохранения на диск.
myChart.SaveImage("C:\mypic.png", System.Drawing.Imaging.ImageFormat.Png)
Затем загрузите это изображение с диска. Если диаграммы генерируются только один раз, вы можете просто сначала проверить файловую систему для изображения, а затем только повторно отобразить его, если он не существует.
Надеюсь, что это поможет.