Redimensionar BitmapImage

Para dar las gracias debes entrar o registrarte en el foro

Miembro ocasional
Miembro ocasional
Mensajes: 33 Agradecido: 0
15 Sep 2014, 12:41# 1

Hola, esta vez estoy buscando alguna función que redimensiona imágenes. Necesito que cualquier imagen que seleccione de la galería la redimensione a 720 de alto y el ancho que se ajuste proporcionalmente.
Programe una función que selecciona una imagen la redimensiona y así de a una, el tema es que a la tercer imagen me da un error de excepción OutOfMemoryException en bn.setspurce(mem). Como puedo solucionarlo?¿

private BitmapImage AspectScale(BitmapImage img, int maxWidth, int maxHeigh)
{
double scaleRatio;

if (img.PixelWidth > img.PixelHeight)
scaleRatio = (maxWidth/(double) img.PixelWidth);
else
scaleRatio = (maxHeigh/(double) img.PixelHeight);

var scaledWidth = img.PixelWidth * scaleRatio;
var scaledHeight = img.PixelHeight * scaleRatio;

using (var mem = new MemoryStream())
{
var wb = new WriteableBitmap(img);
wb.SaveJpeg(mem, (int)scaledWidth, (int)scaledHeight, 0, 100);
mem.Seek(0, SeekOrigin.Begin);
var bn = new BitmapImage();
bn.SetSource(mem);
return bn;
}
}

:thanks:

Gracias  
Etiquetado en:
Administrador
Administrador
Mensajes: 826 Agradecido: 119
20 Sep 2014, 16:59# 2
Aquí tienes una posible solución.
Según la respuesta válida (la que tiene el tick verde) la excepción la produce el uso de WriteableBitmap.

Enviado desde mi LG-V500 mediante Tapatalk
Gracias  