Это действительно зависит от того, какое качество вы ищете. Если вам нужно высококачественное изображение с подробными уровнями масштабирования и правильной интерполяцией, вам нужно написать бэкэнд-сервис для обслуживания увеличенных частей ваших изображений. Если вы не заботитесь о качестве или скорости, вы можете загрузить все изображение и подогнать его так, чтобы оно отображалось внутри абсолютно расположенного элемента div, смещения для области, которую вы хотите просмотреть, и размера, определяемого вашим уровнем масштабирования.
Я бы сказал, что вы, вероятно, после первого варианта. Некоторые инструменты уже сделаны для этого , я, конечно, не использовал ни один из инструментов; Я уверен, что другие будут публиковать ссылки на других, которые вы можете попробовать; Я написал свой сервис и клиент. Я не могу вдаваться в точные подробности, поскольку это запатентовано, но я могу дать вам обзор того, что я делаю.
У меня есть универсальный обработчик asp.net, который принимает строку запроса, обозначающую, какое изображение (по идентификатору) и координаты для увеличения и размер целевого изображения. У меня есть служба загрузки изображения и обрезать и изменить его размер (это сложнее, чем у меня, так как у меня много оптимизаций и предварительной подготовки, когда файл изначально загружен, например, несколько поперечных сечений файла для более быстрой подачи при масштабировании, но то, что я описал вот основы).
Этот сервис просто возвращает тип изображения / JPEG и отправляет изображение.
На стороне клиента я написал элемент управления рамкой, который позволяет пользователю выделять область на изображении, которое он хочет увеличить. они выделяют область и нажимают кнопку увеличения. Затем он вычисляет смещения в изображении выбранных координат на основе размера исходного изображения и видимого размера изображения. Я отправляю эти координаты ранее упомянутому обработчику. Я загружаю URL со строкой запроса srvice в объект Image и обрабатываю onload. Если все прошло хорошо, я затем переключаю это на просматриваемое изображение и обновляю все мои переменные на стороне клиента, чтобы определить, где на изображении я увеличен, а затем его можно снова увеличить или уменьшить или панорамировать дальше.
Теперь я понимаю ваше ленивое требование, но я должен сказать, что написать это на самом деле довольно легко, чтобы начать работу с основами. самая сложная часть, которую вы найдете, это сделать поле выбора. Но даже тогда это может быть так просто, как отслеживание двух кликов. Вверху слева от увеличения выберите марку, а внизу справа. Или вообще не иметь поля выбора и увеличивать и уменьшать только с заданными интервалами. Мне в моих проектах требовалось поле масштабирования, поскольку это довольно сложное решение для анализа изображений.
Я надеюсь, что это, по крайней мере, полезно и приведет вас к чему-то полезному.