У вас возникнут проблемы с этим. Единственная причина, по которой вы хотите масштабировать ее до этого размера, - это если вы хотите ее распечатать. Вам нужно распечатать его, тогда вам понадобится другое решение.
Reality Дело в том, что вы можете когда-либо видеть, насколько дисплей может представить, поэтому создание образа этого большого является пустой тратой ресурсов и борьба против пределов браузеров.
Решение. Загрузите изображение как обычно, но не добавляйте его в DOM. Добавьте элемент div с высотой, установленной на 30000 пикселей, это даст полосу прокрутки. Затем создайте холст с высотой и шириной, установленный на window.innerWidth
и window.innerHeight
, и добавьте стиль CSS { position:fixed; top:0px; right:0px; }
к этому холсту, который зафиксирует положение холста, но при этом даст полосу прокрутки через div фона.
Используйте requestAnimationFrame
, чтобы вызвать вашу функцию, которая проверяет обновленную позицию прокрутки и, если ее изменить, визуализирует соответствующую часть изображения на холсте.
Использование этого метода позволит ему казаться, что изображение очень велико, но вы только когда-либо показываете, что можно увидеть. Если вы выбрали, вы можете реализовать свой собственный свиток и с помощью небольшой фантастической математики вы можете сделать изображение таким же большим, как вселенная. Думайте о картах google при максимальном увеличении, что это такое? это не имеет значения, потому что вы можете видеть только часть его, чтобы они только отображали ту часть, которую вы видите.
'img.style.height = '30000px'; img.style.width = 'auto'; ' –
Я думаю, вам нужно использовать функцию drawImage() –
Да, я использую функцию drawImage(). – tipsywacky