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

时间:2016-01-15 22:40:36

标签: wpf

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

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

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

1 个答案:

答案 0 :(得分:2)

使用icon01.SourceImageSource)通过FileStream创建PngBitmapEncoder,此处为使用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);
        }
    }

和Xaml是相同的:

 <Grid>

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

</Grid>