Telefondaki MediaLibrary'den resim almak ve yeniden boyutlandırmak için aşağıdaki kodu kullanıyorum. Emülatörde iyi çalışıyor ama gerçek bir telefonda denediğimde -90 derece dönüyor.Writeablebitmap.SaveJpeg resim -90 derece döndürüyor
SaveJpeg için 4. parametre oryantasyondur ve araç ipucu diyor ki "Bu parametre şu anda bu yöntemle kullanılmıyor. 0 değerini bir yer tutucu olarak kullanın."
0,1 -1 değerini geçmemde aynı şey olur. Telefonda uygulanabilecek gibi görünüyor ve emülatörde değil, ama ne geçeceğimi bilmiyorum.
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();
}
}
}
}
Ayrıca, telefondaki örnek resimlerin bu sorunu çözmediğini fark ettim, sadece aldıklarım.
Dikey veya yatay modda mı görüntülüyorsunuz? Burada yanlış bir şey yapmıyor gibi görünüyor, sadece fotoğrafı çekmeyi/görüntülemeyi beklediğiniz mod. –
Resimler Portre modunda çekildi ve Portre modunda görüntüleniyor – Tyler
Picture.GetThumbnail() görüntüyü doğru görüntüler, öyleyse yukarıdaki kod ile bir şey – Tyler