本地保存的位图图像在物理设备上显示为奇怪

时间:2014-05-06 19:07:36

标签: c# xaml windows-phone

我有一部分应用程序,我从CameraCaptureTask保存照片。来自手机媒体库的照片很好。我想将照片保存到IsolatedStorage。这是我的保存方法:

private void SavePhoto(Stream image, string filename)
{
   using (IsolatedStorageFile storageFolder = IsolatedStorageFile.GetUserStoreForApplication())
   {
       using (IsolatedStorageFileStream fileStream = storageFolder.CreateFile(filename))
       {
           var bitmap = new BitmapImage();
           bitmap.SetSource(image);

           var wb = new WriteableBitmap(bitmap);
           wb.SaveJpeg(fileStream, wb.PixelHeight, wb.PixelWidth, 0, 100);
           fileStream.Close();
       }
   }
}

这是在另一页显示照片的方法的一部分:

{...
     using (IsolatedStorageFile storageFolder = IsolatedStorageFile.GetUserStoreForApplication())
     {
         using (IsolatedStorageFileStream fileStream = storageFolder.OpenFile(_url, FileMode.Open, FileAccess.Read))
         {
           BitmapImage image = new BitmapImage();
               image.SetSource(fileStream);
         }
         this.fullImage.Source = image;
     }
    }

XAML代码:

<ViewportControl x:Name="viewport"  
    ManipulationStarted="OnManipulationStarted" 
    ManipulationDelta="OnManipulationDelta"  
    ManipulationCompleted="OnManipulationCompleted" 
    ViewportChanged="viewport_ViewportChanged">
   <Canvas x:Name="canvas">
       <Image x:Name="fullImage" HorizontalAlignment="Center"
                RenderTransformOrigin="0,0"
                VerticalAlignment="Center"
                CacheMode="BitmapCache"
                Stretch="UniformToFill" >
               <Image.RenderTransform>
                     <ScaleTransform x:Name="xform"/>
               </Image.RenderTransform>
       </Image>
  </Canvas>
</ViewportControl>

图像已加载并显示,但它很奇怪,它在一侧伸展,在第二面收窄。对不起,自WP 8.1升级后我无法截屏,我不知道为什么。在Windows Phone模拟器中,它工作正常。

1 个答案:

答案 0 :(得分:1)

我正面临类似的情况。我使用PhotoCaptureDevice捕获的图像,我试图在一个单独的页面中显示它(它也实现了缩放平移功能),图像显示为裁剪。如果我从CacheMode = "BitmapCache"中删除Image属性,则不再裁剪图像。然而它使缩放&amp;平底锅的形象非常紧张。

似乎Windows Phone环境中的图像大小有一个大小限制(2000 x 2000)。请参阅this

请查看PhotoPage.xaml project中的PhotoPage.xaml.csFilterExplorerWP个文件。它可能会对你有帮助。