WPF中的Image控件上传,保存,显示头像

WPF中的Image控件上传,保存,显示头像

 //选择电脑上的图片显示到Image控件中
        private void btnUpload_Click(object sender, RoutedEventArgs e)
        {
            // 打开文件对话框以选择要上传的图片  
            OpenFileDialog openFileDialog = new OpenFileDialog();
            openFileDialog.Filter = "Image Files (*.jpg, *.jpeg, *.png, *.bmp)|*.jpg;*.jpeg;*.png;*.bmp";
            if (openFileDialog.ShowDialog() == true)
            {
                // 将选定的图片文件加载到Image对象中  
                myImage.Source = new BitmapImage(new Uri(openFileDialog.FileName));
            }
        }

保存是随机生成名字,保存到应用程序目录下的Images目录下,记得测试时在Debug目录下手工建立, 数据库里就存名字就行了

 string _Photo = "";
            #region 头像 
            try
            {
                string filename = Guid.NewGuid().ToString() + ".jpg";
                var encoder = new PngBitmapEncoder();
                encoder.Frames.Add(BitmapFrame.Create((BitmapSource)myImage.Source));
                FileStream file = new FileStream($"Images/{filename}", FileMode.Create);
                encoder.Save(file);
                file.Close();
                _Photo = filename;
            }
            catch (Exception ex)
            {
                 
            }
     #region 显示头像
                if (!string.IsNullOrEmpty(u.Photo))
                {
                    string path = AppDomain.CurrentDomain.BaseDirectory + "Images";
                    BitmapImage bmp = new BitmapImage();
                    bmp.BeginInit();
                    bmp.UriSource = new Uri(path + "\\" + u.Photo);
                    bmp.EndInit();
                    myImage.Source = bmp; 
                }
                #endregion