C# WPF LiveCharts LineSeries 图表保存为图片到指定文件夹
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 著作权归作者所有。请勿转载和采集!