我正在制作Windows Phone 7应用程序,该应用程序涉及从网络获取大图像并将其放在 ScrollViewer 供用户滚动。我想我正在限制 BitmapImage, 但是,由于图像似乎以2048像素的高度或宽度被切断。

这是Silverlight的已知限制吗 BitmapImage 在这种情况下,还有其他类别可以使用以允许大型图像滚动吗?

谢谢

有帮助吗?

解决方案

是的,有2k x 2k的限制。这是限制,在白皮书中描述了“为Windows Phone创建高性能的Silverlight应用程序”中的解决方法 http://www.microsoft.com/downloads/en/details.aspx?displaylang= en&familyid = 3A8636BF-185F-449A-A0CE-83502B9EC0EC

尺寸限制:由于Windows Phone摄像头是5 MP,并且屏幕分辨率小于其他平台,因此可以处理的图像的限制为2K x 2K像素。大于此大的任何事物都会以较低的分辨率自动采样,并且图像将失去一些丰富度。处理大于2K x 2k的图像在某些情况下,您需要处理大于2k x 2k的图像,例如照片编辑器或裁剪图像。在这些情况下,您可以将大于2K x 2k的图像处理到文件中,然后显示适合2k x 2k的部分。您可以将可写入的Bitsmap与loadJpeg的组合组合来完成。示例#5 - LoadingLargeimages

XAML:

<StackPanel>
    <Image Height="3000" Width="3000" Name="image1" Stretch="Fill" />
    <Button Content="Load" Height="70" Width="152" Click="btnLoad_Click" />
</StackPanel>

背后的代码:

private void btnLoad_Click(object sender, RoutedEventArgs e)
{
    StreamResourceInfo sri = null;
    Uri uri = new                                                                           Uri("LoadJpegSample;component/Test3k3k.JPG", UriKind.Relative);
    sri = Application.GetResourceStream(uri);

    WriteableBitmap wb = new WriteableBitmap((int)this.image1.Width, (int)this.image1.Height);

    Extensions.LoadJpeg(wb, sri.Stream);
    this.image1.Source = wb;
}

使用大于2K x 2k图像时需要知道的知识:

  • 显示得很慢
  • 请勿将其用于动画或平移场景。

调整大小的方法 Writablebitmapex 如果没有JPEG流,也可以用于此任务。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top