Aprimoramento nas imagens armazenadas como pirâmides
-
12-12-2019 - |
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.
Solução
Você tem duas boas opções:
- .
-
Aplicar ação na maior resolução e recriar resoluções menores conforme necessário (nível atual e outros níveis quando selecionados).
-
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.
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).