C# WPF LiveCharts LineSeries 图表保存为图片到指定文件夹

要将 LiveCharts LineSeries 图表保存为图片并将其保存在名为 'Img' 的文件夹中,您可以使用以下代码:

using LiveCharts;
using LiveCharts.Wpf;
using System.IO;
using System.Windows;
using System.Windows.Media.Imaging;

namespace WpfApp
{
    public partial class MainWindow : Window
    {
        public SeriesCollection SeriesCollection { get; set; }

        public MainWindow()
        {
            InitializeComponent();

            // 创建示例数据
            SeriesCollection = new SeriesCollection
            {
                new LineSeries
                {
                    Title = 'Series 1',
                    Values = new ChartValues<double> { 4, 6, 5, 2, 7 }
                }
            };

            DataContext = this;
        }

        private void SaveChartImage_Click(object sender, RoutedEventArgs e)
        {
            // 创建图表
            var chart = new CartesianChart
            {
                Series = SeriesCollection
            };

            // 使用RenderTargetBitmap将图表渲染为图像
            var renderTargetBitmap = new RenderTargetBitmap((int)chart.ActualWidth, (int)chart.ActualHeight, 96, 96, PixelFormats.Pbgra32);
            renderTargetBitmap.Render(chart);

            // 将图像保存到文件
            var encoder = new PngBitmapEncoder();
            encoder.Frames.Add(BitmapFrame.Create(renderTargetBitmap));

            var imgDirectory = 'Img';
            var imgPath = Path.Combine(imgDirectory, 'chart.png');

            Directory.CreateDirectory(imgDirectory);
            using (var fileStream = new FileStream(imgPath, FileMode.Create))
            {
                encoder.Save(fileStream);
            }

            MessageBox.Show('图表已保存为图像');
        }
    }
}

在上面的代码中,我们首先在 SaveChartImage_Click 事件处理程序中创建一个 CartesianChart 对象,然后使用 RenderTargetBitmap 将其渲染为图像。接下来,我们使用 PngBitmapEncoder 将渲染后的图像保存到文件中。最后,我们在名为 'Img' 的文件夹中创建了一个名为 'chart.png' 的图像文件。

请注意,此代码假定您在应用程序的根目录下创建了一个名为 'Img' 的文件夹。如果您想要将图像保存在其他位置,请相应地修改 imgDirectory 和 imgPath 的值。


原文地址: https://www.cveoy.top/t/topic/o5eA 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录