我正在製作一個Windows Phone 7應用程序,它涉及從Web獲取大圖像並將其放入ScrollViewer
供用戶滾動瀏覽。儘管如此,我認爲我正在達到BitmapImage
的限制,因爲圖像似乎在2048像素的高度或寬度上被截斷。Silverlight中的BitmapImage大小限制
這是Silverlight的一個已知限制BitmapImage
並且在這種情況下是否有其他類可用於允許滾動瀏覽大圖像?
謝謝
我正在製作一個Windows Phone 7應用程序,它涉及從Web獲取大圖像並將其放入ScrollViewer
供用戶滾動瀏覽。儘管如此,我認爲我正在達到BitmapImage
的限制,因爲圖像似乎在2048像素的高度或寬度上被截斷。Silverlight中的BitmapImage大小限制
這是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 手機攝像頭是500萬像素,屏幕 分辨率比較小其他 平臺, 可以處理的圖像限制是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>
代碼背後:
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分辨率圖像當:
- 它顯着較慢顯示
- 不要將其用於動畫或平移場景。
的WriteableBitmapEx的縮放方法也可以用於此任務,如果沒有JPEG視頻流可用。
這是使用本地資源完成它的好方法,但您如何使用來自URL的遠程圖像進行建議呢? – RajenK 2010-10-08 13:47:51
請參閱關於我的WriteabelBitmapEx庫的編輯。 – 2010-10-15 19:27:49