示例#1
0
        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();
        }
示例#2
0
 private async void MyPersonPicture_Tapped(object sender, TappedRoutedEventArgs e)
 {
     TempPicture.ProfilePicture = MyPersonPicture.ProfilePicture;
     await CropperDialog.ShowAsync();
 }
示例#3
0
 private void CropperDialogCloseButton_Click(object sender, RoutedEventArgs e)
 {
     CropperDialog.Hide();
 }