Raj*_*enK 2 silverlight bitmapimage windows-phone-7
我正在制作一个Windows Phone 7应用程序,它涉及从Web获取大图像并将其放入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的部分.您可以使用WriteableBitmap和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>
Run Code Online (Sandbox Code Playgroud)
代码背后:
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;
}
Run Code Online (Sandbox Code Playgroud)
使用大于2k x 2k图像时需要了解的事项:
- 它显示得慢得多
- 不要将它用于动画或平移场景.
如果没有可用的JPEG流,则WriteableBitmapEx的Resize方法也可用于此任务.
| 归档时间: |
|
| 查看次数: |
2467 次 |
| 最近记录: |