Элемент управления изображениями WPF для постепенной загрузки многостраничного TIFF
-
18-09-2019 - |
Вопрос
Мне интересно, существует ли существующий элемент управления или было бы просто разработать элемент управления, позволяющий постепенно загружать многостраничный TIFF по сети?Я работаю с некоторыми изображениями в формате tiff, которые содержат до тысяч страниц, и было бы здорово, чтобы изображение начинало появляться сразу после загрузки страницы или страниц и извлекало дополнительные страницы изображения только по мере необходимости или загрузка по требованию или при наличии пропускной способности.Я понимаю, что изображение TIFF имеет определенные требования к структуре и окружающим метаданным, но ожидаю, что это возможно.
Решение
Я предлагаю вам начать использовать LibTiff или LibTiff.NET.С последнего легко начать, и на данный момент у меня есть хороший опыт.Это позволит вам полностью контролировать порядок загрузки.Это в некоторой степени зависит от точного форматирования TIFF, который вы пытаетесь загрузить.Произвольный доступ к страницам всегда возможен.Кроме того, это даст вам хороший контроль над использованием ресурсов памяти.
Предыдущий совет начать со спецификации — это, по моему мнению, рецепт кошмара.Существует так много различных интерпретаций TIFF (включая порядок байтов, зависящий от машины), что вам придется потратить много времени на их реализацию и тестирование.LibTIFF является эталонным и имеет очень мягкую форму лицензии.Пожалуйста, проверьте мой вопрос на StackOverflow. здесь
Другие советы
Я не думаю, что какой-либо язык имеет встроенный контроль над этим.Я бы взял копию спецификации TIFF и написал собственное решение.
http://partners.adobe.com/public/developer/tiff/index.html
Однако вы можете попробовать адаптировать существующие элементы управления просмотрщиком TIFF:
http://www.codeproject.com/KB/miscctrl/Image_Viewer_Control.aspx; http://www.atalasoft.com/cs/forums/thread/11473.aspx
Однако я не могу ручаться за качество приведенного выше кода.