Writeablebitmap.SaveJpeg旋转我的图像-90度
本文关键字:图像 -90度 我的 旋转 SaveJpeg Writeablebitmap | 更新日期: 2023-09-27 17:55:05
我使用以下代码从手机上的medilibrary中获取图片并调整其大小。在模拟器中,它工作得很好,但当我在真正的手机上尝试时,它旋转了-90度。
SaveJpeg的第四个参数是方向,工具提示说该方法当前未使用此参数。使用值0作为占位符。"
如果我传递0 1 -1,也会发生同样的事情。似乎它实际上可能是在手机上实现的,而不是在模拟器中,但我不知道该传递什么。
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();
}
}
}
}
我也注意到手机上的样本照片没有这个问题,只是我拍的那些。
我不认为方向的EXIF数据是由WP7读取的(很高兴得到纠正,因为我只在CTP SDK发布时尝试过)。但是,您可以使用此方法手动旋转图片。另一种选择,我还没有尝试过,可以获得图像的旋转变换并将其旋转90度。变换旋转可能比手动移动可写位图的所有像素更快。