private async void CropperDialogPrimaryButton_Click(object sender, RoutedEventArgs e) { var imageSource = EditPicture.ProfilePicture; byte[] imageBuffer; var localFolder = Windows.Storage.ApplicationData.Current.LocalFolder; var file = await localFolder.CreateFileAsync("temp.jpg", CreationCollisionOption.ReplaceExisting); try { using (var ras = await file.OpenAsync(FileAccessMode.ReadWrite, StorageOpenOptions.None)) { WriteableBitmap bitmap = imageSource as WriteableBitmap; var stream = bitmap.PixelBuffer.AsStream(); byte[] buffer = new byte[stream.Length]; await stream.ReadAsync(buffer, 0, buffer.Length); BitmapEncoder encoder = await BitmapEncoder.CreateAsync(BitmapEncoder.JpegEncoderId, ras); encoder.SetPixelData(BitmapPixelFormat.Bgra8, BitmapAlphaMode.Ignore, (uint)bitmap.PixelWidth, (uint)bitmap.PixelHeight, 96.0, 96.0, buffer); await encoder.FlushAsync(); var imageStream = ras.AsStream(); imageStream.Seek(0, SeekOrigin.Begin); imageBuffer = new byte[imageStream.Length]; var re = await imageStream.ReadAsync(imageBuffer, 0, imageBuffer.Length); } await file.DeleteAsync(StorageDeleteOption.Default); List <PersonPictures> datalist = conn.Query <PersonPictures>("select * from PersonPictures where pictureName = ?", "picture"); if (datalist != null) { conn.Execute("delete from PersonPictures where pictureName = ?", "picture"); } conn.Insert(new PersonPictures() { pictureName = "picture", picture = imageBuffer }); SetPersonPicture(); PopupNotice popupNotice = new PopupNotice("头像已更新"); popupNotice.ShowAPopup(); } catch { TempPicture.Visibility = Visibility.Visible; EditPicture.Visibility = Visibility.Collapsed; }; CropperDialog.Hide(); }
private void CropperDialogCloseButton_Click(object sender, RoutedEventArgs e) { CropperDialog.Hide(); }