Silverlight中的位图尺寸限制
-
28-09-2019 - |
题
我正在制作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流,也可以用于此任务。
不隶属于 StackOverflow