Я пишу приложение для просмотра изображений, которое загружает большие неподвижные изображения. Я должен иметь возможность увеличивать масштаб до 1: 1, чтобы измерить точные пиксельные координаты элементов изображения. Я использую размещенный здесь элемент управления Viewport, который отлично подходит для масштабирования и панорамирования. Я могу загрузить изображение tiff размером 150 МП с помощью BitmapDecoder, и его количество пикселей верное 14000 x 10000. Однако, когда я назначаю это растровое изображение свойству Image.Source, оно уменьшается примерно до 15 МП:
sourceBitmap.PixelWidth = 14204
sourceBitmap.PixelHeight = 10652
После присвоения этого растрового изображения image1.Source мы получаем
image1.Source.Width = 4545.27 ...
image1.Source.Height = 3408.64 ...
Я знаю о безразмерном контексте графики WPF и могу отрегулировать масштабные коэффициенты для чтения исходных координат, но есть риск ошибок округления и Я работаю над масштабированной копией, которая ухудшает исходное разрешение изображения. Согласно документации Microsoft, растровое изображение WPF может иметь размер до 64 ГБ, но элемент управления Image, похоже, не предназначен для работы с растровыми изображениями размером более 15MP. Установка Stretch на «None» только усугубляет ситуацию. Он обрезает изображение до верхнего левого угла 4545 x 3408 пикселей от источника и отображает его очень маленьким, почти как миниатюру вместо 1: 1.
Есть ли способ обойти это ограничение?