0

我写了一些 Windows Phone 7 应用程序。我打算用手机访问照片。我用手机拍照,照片尺寸为 1944x2592(宽 x 高)。然后我用

MediaLibrary mediaLibrary = new MediaLibrary();
for (int x = 0; x < mediaLibrary.Pictures.Count; ++x)
{
    Picture pic = mediaLibrary.Pictures[x];
    int w = pic.width;
    int h = pic.height;
    ...

但是我发现w是2592,h是1944。Width和Height的值是颠倒的!谁能告诉我这是怎么回事?有什么问题?我期待着您的回复!谢谢你。

4

1 回答 1

0

相机会检测手机的方向并将其存储为元数据。因此,高度和宽度将始终相同,并且在 Zune、Picture Viewer 或大多数其他程序中显示时的方向将从元数据中读取。

这是一个解释它并提供 C# 示例代码的资源。特别重要的部分就在底部。要使用它,您将需要这个库(那里也是一个有用的指南):

void OnCameraCaptureCompleted(object sender, PhotoResult e)
{
   // figure out the orientation from EXIF data
   e.ChosenPhoto.Position = 0;
   JpegInfo info = ExifReader.ReadJpeg(e.ChosenPhoto, e.OriginalFileName);

   _width = info.Width;
   _height = info.Height;
   _orientation = info.Orientation;

   PostedUri.Text = info.Orientation.ToString();

   switch (info.Orientation)
   {
       case ExifOrientation.TopLeft:
       case ExifOrientation.Undefined:
           _angle = 0;
           break;
       case ExifOrientation.TopRight:
           _angle = 90;
           break;
       case ExifOrientation.BottomRight:
           _angle = 180;
           break;
       case ExifOrientation.BottomLeft:
           _angle = 270;
           break;
   }

   .....

}
于 2013-01-18T05:21:04.033 回答