Tyl*_*ler 5 c# windows-phone-7 windows-phone
我正在使用以下代码从手机上的MediaLibrary中获取图片并调整其大小.在模拟器中,它工作正常,但是当我在真正的手机上试用它时它正在旋转-90度.
SaveJpeg的第4个参数是orientation,工具提示显示"此方法当前未使用此参数.使用值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();
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
另外我只是注意到手机上的样本图片没有这个问题,只是我拍摄的那些.
我认为 WP7 不会读取方向的 EXIF 数据(很高兴得到纠正,因为我只是在 CTP SDK 推出时才尝试过)。但是,您可以使用此方法手动旋转图片。另一种方法(我没有尝试过)可能是获取图像的旋转变换并将其旋转 90 度。变换旋转可能比手动移动可写位图的所有像素更快。
| 归档时间: |
|
| 查看次数: |
2518 次 |
| 最近记录: |