Подтвердить что ты не робот

Создание образа с помощью библиотеки управления диаграммами 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(предпочтительно бесплатно), которые вы бы порекомендовали?

Спасибо

4b9b3361

Ответ 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)

Затем загрузите это изображение с диска. Если диаграммы генерируются только один раз, вы можете просто сначала проверить файловую систему для изображения, а затем только повторно отобразить его, если он не существует.

Надеюсь, что это поможет.