Здравствуйте, SanyaVB, Вы писали:
SVB>Здравствуйте, SanyaVB, Вы писали:
SVB>>Подскажите пожалуйста, как используя WPF можно загрузить и отобразить PNG файл высокого разрешения (21600x21600). размер его 120 МБ. При открытии IrfanView в памяти разворачивается в 1335МБ. У меня свободной оперативной памяти более 12 гектаров.
SVB>>Как я выше писал, что редактором этот файл открывается, а вот BitmapImage оказался умнее всех и говорит: "Недостаточно памяти для продолжения выполнения программы."
SVB>>Буду благодарен за помощь.
SVB>Нашел причину. Нужно было собирать под платформу x64. Странно... для x86 доступно 3.5ГБ, а ему не хватило этого на распаковку...
Для приложений x86 доступно 2 Гб адресного пространства...
На практике .net приложение начинает затыкаться при загруженности 1.3 — 1.6 Гб, потому-что затруднительно становится выделить непрерывный кусок памяти в Large Object Heap из-за ее фрагментированности.
Для открытия таких больших картинок можно поискать библиотеки для "кусочного" и "разномасштабного" чтения png, чтобы не загружать память и ресурсы.