bottom line: não tente renderizar mais pixels do que o que é possível pela tela. você não precisa tocar em dados que não são relevantes para a imagem final, porque ela não pode ser vista de qualquer maneira. permite um visualizador de imagens normal:
- você tem a imagem original como pixels rgb no ram
- você deseja exibir a imagem
Assim, normalmente você cria uma superfície para a qual pode desenhar e, em seguida, itera os dados originais e pinta os pixels na superfície de acordo. se você "aproximar o zoom", desenhe 4, 8, 16 pixels por zoom em vez do original. e se você "afastar o zoom", você desenha apenas a cada 4, 8, 16 pixels (ou, para melhorar a qualidade, você calcula uma nova cor com base nos pixels em torno do que você escolheria).
o problema com o zoom mais próximo: você tende a deixar o sistema de janelas cortar pixels fora da área visível, embora você ainda tenha um, digamos, 8k * 8k de superfície grande. sua tela é 1980x1020 .. isso é um enorme desperdício de memória (e velocidade no final). seria melhor descobrir o que é visível ANTES de começar a obter dados da fonte original.
o problema com o zoom: você precisa calcular o pixel final repetidamente. seria melhor ter os dados originais da melhor forma possível E com algumas resoluções mais baixas.
Assim, o seadragon combina várias coisas: calcular o que o usuário pode ver, acessar os dados para preencher apenas a área visível e fazer esse preenchimento muito rapidamente. além disso, esteja preparado para buscar dados "próximos" de onde você está olhando agora. é incomum fazer zoom em uma imagem MUITO perto e depois pular IMEDIATAMENTE para o outro canto da imagem. normalmente você se movimenta em uma região um pouco para que os dados possam ser buscados também.
explicação melhor e mais profunda: