Hay 2 formas de redimensionar una imagen, ya sea usando el crop pre-construido o haciéndolo por programación. A continuación las 2 formas en que se puede hacer:
Primera
Programándolo como buen Geek.PhotoChooserTask photoChooserTask = new PhotoChooserTask(); photoChooserTask.ShowCamera = true; photoChooserTask.Completed += (s, a) => { if (null == a.Error && a.TaskResult == TaskResult.OK) { if (a.ChosenPhoto.Length != 0) { try { BitmapImage img = new BitmapImage(); img.SetSource(a.ChosenPhoto); WriteableBitmap writeableBmp = new WriteableBitmap(img); int targetHeight = writeableBmp.PixelHeight; int targetWidth = writeableBmp.PixelWidth; while (true) { if (180 > targetHeight * 0.9 || 180 > targetWidth * 0.9) break; targetHeight = (int)(targetHeight * 0.9); targetWidth = (int)(targetWidth * 0.9); } MemoryStream ms = new MemoryStream(); writeableBmp.SaveJpeg(ms, targetWidth, targetHeight, 0, 100); ms.Seek(0, SeekOrigin.Begin); //Ya esta todo en el MemoryStream } catch (Exception) { throw new ArgumentException("La foto que ha elegido no se puede redimensionar, por favor eliga otra."); } } else { throw new ArgumentException("La foto que ha elegido no se puede redimensionar, por favor eliga otra."); } } }; photoChooserTask.Show();
Segunda
PhotoChooserTask, lo hacemos juntos.PhotoChooserTask photoChooserTask = new PhotoChooserTask(); photoChooserTask.PixelHeight = 180; photoChooserTask.PixelWidth = 180; photoChooserTask.ShowCamera = true; photoChooserTask.Completed += (s, a) => { if (null == a.Error && a.TaskResult == TaskResult.OK) { if (a.ChosenPhoto.Length != 0) { try { //Ya esta todo en el a.ChosenFoto; } catch (Exception) { throw new ArgumentException("La foto que ha elegido no se puede redimensionar, por favor eliga otra."); } } else { throw new ArgumentException("La foto que ha elegido no se puede redimensionar, por favor eliga otra."); } } }; photoChooserTask.Show();
No hay comentarios.:
Publicar un comentario