Estoy usando el siguiente código para obtener una imagen de la MediaLibrary en el teléfono y cambiar su tamaño. En el emulador funciona bien pero lo está girando -90 grados cuando lo pruebo en un teléfono real.Writeablebitmap.SaveJpeg está girando mi imagen -90 grados
El 4º parámetro para SaveJpeg es la orientación y la información sobre herramientas dice "Este parámetro no se utiliza actualmente con este método. Utilice un valor de 0 como marcador de posición".
Lo mismo sucede si paso 0.1, -1. Parece que en realidad podría implementarse en el teléfono y no en el emulador, pero no sé qué pasar.
public byte[] GetPhoto(string photoName, int width, int height)
{
using (var ml = new Microsoft.Xna.Framework.Media.MediaLibrary())
{
using(Stream stream = (from p in ml.Pictures where p.Name == photoName select p).FirstOrDefault().GetImage())
{
//load the stream into a WriteableBitmap so it can be resized
using(MemoryStream outstream = new MemoryStream())
{
PictureDecoder.DecodeJpeg(stream).SaveJpeg(outstream, width, height, 0, 85);
return outstream.ToArray();
}
}
}
}
También me acabo de dar cuenta de que las imágenes de muestra en el teléfono no están teniendo este problema, solo las que he tomado.
¿Estás viendo en modo retrato o paisaje? parece que no está haciendo nada mal aquí, es solo el modo que espera tomar/ver la imagen. –
Las imágenes se tomaron en modo Retrato y se están viendo en el modo vertical – Tyler
Picture.GetThumbnail() muestra la imagen correctamente, así que es algo con el código anterior – Tyler