Pergunta

Como um aprimoramento (ou qualquer operação que modifique a imagem) é aplicada a uma imagem que é armazenada na forma de pirâmides, é aplicada pela primeira vez a uma determinada camada de pirâmide (atual nível de zoom) e, em seguida, reaplicado a uma camada diferenteSe o usuário aumentar ou diminuir o zoom ou o aprimoramento for aplicado tudo de uma só vez para toda a pirâmide, ou há algum algoritmo usando qual se pode propagar com eficiência o efeito de aprimoramento em outras camadas da pirâmide.

Eu quero saber qual é a melhor maneira possível de fazer isso.

Foi útil?

Solução

Você tem duas boas opções:

    .
  1. Aplicar ação na maior resolução e recriar resoluções menores conforme necessário (nível atual e outros níveis quando selecionados).

  2. Mantenha uma pilha de ações, aplique-se apenas ao nível atual, ao alternar o nível aplicar pilha inteira para esse nível.

  3. Em ambas as opções, todos os níveis não circulantes * podem ser armazenados em arquivos e carregados na memória somente se esse nível for selecionado. (* Exceto a maior resolução na opção 1, que deve ser mantida na memória.)

    Opção 1 é mais preciso - algumas ações podem ser menos precisas se aplicadas diretamente a resoluções menores.

    Se o seu nível atual não for alterado, muitas vezes e as ações forem rápidas o suficiente para serem aplicadas em seqüência ao nível atual quando for alterada, então a opção 2 resultará no mínimo de cálculos e memória simultânea em uso.

    para a opção 1 Você precisará de um algoritmo de redução (redimensionar) para calcular o nível atual da maior resolução.

    para a opção 2 Você precisará de uma pilha de ações (+ parâmetros para cada ação).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top