Да, есть ограничение 2k x 2k. Это ограничение и обходной путь описаны в документе «Создание высокопроизводительных приложений Silverlight для Windows Phone» http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&FamilyID=3a8636bf-185f-449a-a0ce-83502b9ec0ec
Ограничения по размеру: начиная с Windows
Камера телефона на 5 Мп и экран
разрешение меньше чем на других
платформы, ограничения для изображений, которые
могут быть обработаны 2k х 2k пикселей.
Все, что больше, будет
автоматически выбирается при более низкой
разрешение и изображение потеряет
немного богатства. Обработка изображений
Больше 2к х 2к Есть
сценарии, где вам нужно обработать
изображения размером более 2k x 2k, например, Фото
редактор или обрезка изображений. В тех
сценарии, вы можете обрабатывать изображения
которые больше чем 2k x 2k в
файл, а затем отобразить часть, которая
вписывается в 2K х 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 Изображения:
- Отображение значительно медленнее
- НЕ используйте его для анимации или панорамирования.
Метод Resize WriteableBitmapEx также можно использовать для этой задачи, если нет потока JPEG.