2012-02-26 6 views
1

Я пытаюсь создать приложение, которое динамически подает изображения в Deep Zoom MultiScaleImage. Например, когда запрашивается изображение для определенного угла большого изображения, это изображение должно отображаться автоматически.Silverlight Deep Zoom: генерирует изображения по запросу

Рендеринг - это то, что я реализую. Но мой код нужно вызывать, когда MultiScaleImage запрашивает этот угол изображения. Как это реализовать?

Когда я выполняю поиск по StackOverflow для этого, я получаю результаты, которые объясняют динамическое создание глубоких изображений с использованием DeepZoomTools. Я не совсем уверен, но этого я не хочу. Я хочу генерировать изображения только по индивидуальному запросу и не генерировать их все на лету.

EDIT: Позвольте мне привести пример, который объяснит одно из возможных решений этого вопроса, которое я не знаю, как реализовать.

Если MultiScaleImage запрашивает изображение 5/1_0.png, которое, если вы знаете, Deep Zoom станет первым изображением во втором столбце большого изображения на 5-м уровне масштабирования (не имеет отношения к реальному значению масштабирования при глубоком увеличении). Когда DeepZoom запрашивает этот файл, я хочу сгенерировать его, глядя на параметры, которые у меня есть: «5», «1» и «0».

+1

Вы можете использовать маршрутизацию (например, http://www.4guysfromrolla.com/articles/012710-1.aspx), чтобы перенаправить запрос на обработчик Web Generic. –

+0

(извините за мой плохой английский) - Я не уверен, что это вы хотите, но образец JIT Pivot Viewer JIT делает что-то подобное. Посмотрите здесь (http://geekswithblogs.net/tkokke/archive/2010/08/17/runtime-pivotviewer-collection-creation.aspx) - ссылка на образец по этой статье нарушена, вы можете получить ее здесь: http : //www.silverlight.net/learn/data-networking/pivot-viewer/download-just-in-time-tools# Я не знаю, является ли формат поворота одинаковым, но может быть, вы начинаете point :) – Leo

+0

@AndrewMorton Это выглядит точно так, как я хочу. Возможно, вы захотите сделать это ответом, чтобы я мог его принять. Кроме того, теперь, когда я могу перенаправить запрос обработчику, который будет на странице ASPX, мне было интересно, как я мог бы ответить на изображение, а не на содержимое HTML. Я считаю, что мне потребуется изменить заголовки ответов. Я не так много смотрел. EDIT: ОК замечательный! Я нашел то, что хотел: http://www.sitepoint.com/generating-asp-net-images-fly/ – Salil

ответ

1

@Salil: сделаю. Вы можете использовать маршрутизацию (например, http://4guysfromrolla.com/articles/012710-1.aspx), чтобы перенаправить запрос на обработчик Web Generic. Обратите внимание, что общий обработчик немного более подходит, чем страница aspx, так как ему не нужно много работать со жизненным циклом страницы.

+0

Прошу прощения за поздний прием. Я был занят. – Salil

+0

Хорошо, у меня все получилось. Но изображения, которые я генерирую, кэшируются. Я не уверен, какая часть стека кэширует его. Это браузер? В этом случае, как я могу предохранить Silverlight от кеширования изображений с глубоким увеличением? – Salil

+1

Я бы начал с установки заголовка ответа в обработчике (http://en.wikipedia.org/wiki/List_of_HTTP_header_fields#Avoiding_caching), и если это не сработает, вы можете выполнить поиск в Интернете для «предотвращения кеширования Silverlight». –