ScrollViewer私は、Webから大きな画像を取得してユーザーがスクロールできるように配置するWindowsPhone7アプリケーションを作成しています。BitmapImageただし、高さまたは幅のいずれかで2048ピクセルで画像が切り取られているように見えるため、制限に達していると思います。
これはSilverlightの既知の制限BitmapImageですか?この場合、大きな画像をスクロールできるようにするために使用する他のクラスはありますか?
ありがとう
ScrollViewer私は、Webから大きな画像を取得してユーザーがスクロールできるように配置するWindowsPhone7アプリケーションを作成しています。BitmapImageただし、高さまたは幅のいずれかで2048ピクセルで画像が切り取られているように見えるため、制限に達していると思います。
これはSilverlightの既知の制限BitmapImageですか?この場合、大きな画像をスクロールできるようにするために使用する他のクラスはありますか?
ありがとう
はい、2kx2kの制限があります。これは制限事項であり、回避策はホワイトペーパー「WindowsPhone用の高性能Silverlightアプリケーションの作成」http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&FamilyID=3a8636bf-185f-449a-に記載されています。 a0ce-83502b9ec0ec
サイズ制限:WindowsPhoneカメラは5MPであり、画面解像度は他のプラットフォームよりも小さいため、処理できる画像の制限は2kx2kピクセルです。それよりも大きいものはすべて、より低い解像度で自動的にサンプリングされ、画像の豊かさが失われます。2k x 2kより大きい画像の処理フォトエディタやトリミング画像など、2kx2kより大きい画像を処理する必要があるシナリオがあります。これらのシナリオでは、2k x 2kより大きい画像をファイルに処理してから、2Kx2Kに収まる部分を表示できます。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を超える画像を使用する場合の注意事項:
- 表示が大幅に遅くなります
- アニメーションやパンのシナリオには使用しないでください。
JPEGストリームが利用できない場合は、 WriteableBitmapExのResizeメソッドをこのタスクに使用することもできます。