从 wpf 图像控件中提取图像并将其保存到本地 PCc 上的 png 文件中#

Dan*_*aor 2 wpf

我有一个 wpf c# 中的图像控件。

<Image x:Name="icon01" MouseDown="icon_MouseDown" Cursor="Hand" Source="FavIcon\01.png" Height="48" Width="48" Margin="10"/>
Run Code Online (Sandbox Code Playgroud)

如何将图像 (FavIcon\01.png) 保存到我的 PC 上的文件中?我使用c#.net 4.0。

Sam*_*Dev 5

使用icon01.Source( ImageSource) 创建FileStreamvia PngBitmapEncoder,这里是一个使用 a 的示例SaveFileDialog

 private void icon_MouseDown(object sender, MouseButtonEventArgs e)
    {
        try
        {
            var saveFileDialog = new SaveFileDialog()
            {
                Filter = "Image Files (*.bmp, *.png, *.jpg)|*.bmp;*.png;*.jpg"
            };
            if (saveFileDialog.ShowDialog() == true)
            {

                var encoder = new PngBitmapEncoder();
                encoder.Frames.Add(BitmapFrame.Create((BitmapSource)icon01.Source));
                using (FileStream stream = new FileStream(saveFileDialog.FileName, FileMode.Create))
                    encoder.Save(stream);
            }

        }
        catch (Exception exception)
        {
            MessageBox.Show(exception.Message);
        }
    }
Run Code Online (Sandbox Code Playgroud)

Xaml 是相同的:

 <Grid>

    <Image x:Name="icon01" MouseDown="icon_MouseDown" Cursor="Hand" Source="FavIcon\01.png" Height="48" Width="48" Margin="10"/>

</Grid>
Run Code Online (Sandbox Code Playgroud)