FlexChart > FlexChart の操作 > エクスポート > 画像へのエクスポート |
FlexChart for UWP では、FlexChart を複数の画像形式にエクスポートできます。サポートされる形式は、PNG、JPEG、SVG です。
FlexChart を画像形式にエクスポートするには、SaveImage メソッドを使用します。このメソッドは、指定されたストリームを使用してチャートを画像として保存します。SaveImage メソッドは、画像を保存するためのパラメータとして、ストリーム、画像形式、高さ、幅、背景色を受け取ります。
このトピックは、クイックスタートセクションで作成されたサンプルを使用して、ボタンクリックで FlexChart を画像にエクスポートするための実装方法を説明します。
次の図に、チャートをご希望の画像形式にエクスポートするためのボタンがクリックされたチャートを示します。
MainPage.xaml |
コードのコピー
|
---|---|
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> <Grid.RowDefinitions> <RowDefinition Height="93*"/> <RowDefinition Height="97*"/> </Grid.RowDefinitions> <StackPanel Orientation="Horizontal" Margin="10 0"> <Button Content="エクスポート" Width="100" Margin="10,72,10,72.333" Click="Button_Click_1"/> </StackPanel> <Chart:C1FlexChart x:Name="flexChart" HorizontalAlignment="Left" Width="443" ItemsSource="{Binding DataContext.Data}" BindingX="Fruit" Margin="93,106,0,70" Grid.RowSpan="2"> <Chart:C1FlexChart.Series> <Chart:Series SeriesName="3月" Binding="March"></Chart:Series> <Chart:Series SeriesName="4月" Binding="April"></Chart:Series> <Chart:Series SeriesName="5月" Binding="May"></Chart:Series> </Chart:C1FlexChart.Series> <Chart:C1FlexChart.AxisX> <Chart:Axis MajorGrid="False" Position="Bottom"></Chart:Axis> </Chart:C1FlexChart.AxisX> <Chart:C1FlexChart.AxisY> <Chart:Axis AxisLine="False" Position="Left" MajorUnit="5"></Chart:Axis> </Chart:C1FlexChart.AxisY> <Chart:C1FlexChart.SelectionStyle> <Chart:ChartStyle Stroke="Red"></Chart:ChartStyle> </Chart:C1FlexChart.SelectionStyle> </Chart:C1FlexChart> </Grid> |
MainPage.xaml.cs |
コードのコピー
|
---|---|
public sealed partial class MainPage : Page { List _fruits; public MainPage() { this.InitializeComponent(); } public List Data { get { if (_fruits == null) { _fruits = DataCreator.CreateFruit(); } return _fruits; } } private async void Button_Click_1(object sender, RoutedEventArgs e) { var picker = new FileSavePicker(); Enum.GetNames(typeof(ImageFormat)).ToList().ForEach(fmt => { picker.FileTypeChoices.Add(fmt.ToString().ToUpper(), new List<string>() { "." + fmt.ToString().ToLower() }); }); StorageFile file = await picker.PickSaveFileAsync(); if (file != null) { Stream stream = new MemoryStream(); var extension = file.FileType.Substring(1, file.FileType.Length - 1); ImageFormat fmt = (ImageFormat)Enum.Parse(typeof(ImageFormat), extension, true); flexChart.SaveImage(stream, fmt); using (Stream saveStream = await file.OpenStreamForWriteAsync()) { stream.CopyTo(saveStream); stream.Seek(0, SeekOrigin.Begin); saveStream.Seek(0, SeekOrigin.Begin); saveStream.Flush(); saveStream.Dispose(); } } } } |