Pergunta

Vamos supor que eu tenho um bitmap com um aspecto quadrado e largura de 2048 pixels.

A fim de criar um conjunto de arquivos precisa de DeepZoomImageTileSource do Silverlight Eu preciso escalar esta bitmap para 1024, em seguida, para 512, em seguida, a 256 etc para baixo a imagem de pixel 1.

Há dois, eu suspeito ingênuo, se aproxima: -

  1. Para cada escala necessária imagem a imagem em tamanho real original para o tamanho necessário. No entanto, parece excessiva para ser dimensionamento da imagem completo para os tamanhos muito pequenos.
  2. Depois de ter escalado a partir de um nível para o próximo descartar a imagem original e dimensionar cada imagem em escala sucessiva como a fonte da próxima imagem menor. No entanto eu suspeito que isso iria gerar imagens no intervalo 256-64 com baixa fidelidade do que usar a opção 1.

Nota ao contrário com o Deep Zoom Composer esta ferramenta é esperado para agir de forma on demand, portanto, ele precisa para completar em um prazo razoável (no máximo 30 segundos). Do lado da pluse eu só estou criando uma única imagem multiscale não uma pirâmide de imagens mutliple alto-res.

Estou fora da minha zona de conforto aqui, os peritos gráficos tem algum conselho? Estou errado sobre o ponto 2? É ponto 1 razoavelmente alto desempenho e eu estou preocupado com nada? Opção 3?

Foi útil?

Solução

Cerca de 1: Este parece ser o melhor caminho. E não é que o excesso se você não recarregar a imagem de origem de cada vez.

Sobre 2: Sim, você faria perde o (alguns) de qualidade por escalonamento em etapas.

Eu acho que 30 segundos deve ser suficiente para dimensionar uma imagem (algumas vezes). Qualquer otimização seria na área de cache os resultados.

Outras dicas

O que você está essencialmente tentando fazer é criar mipmaps (ver http://en.wikipedia.org / wiki / Mipmap ). Se você começar com uma potência de 2 imagem quadrada, então dimensionamento para baixo a imagem para metade do tamanho, em seguida, usando a escala para baixo para reduzir seu tamanho por 2 novamente deve dar os mesmos resultados como tendo a imagem original e dimensioná-lo para baixo por uma fator de 4.

Cada pixel da imagem de tamanho metade será a média de 4 pixels na imagem original. Cada pixel da imagem de tamanho quater será a média de 16 pixels. Não importa se você tomar a média de 16 pixels ou a média de 4 pixels que onde a média de 4 outros pixels.

Então, eu diria que você estaria bem com escala sucessivamente imagens para baixo como você mencionou na opção 2. Se você quer ter certeza tente em ambos os sentidos e comparar as imagens.

Eu percebo esta questão é antiga, e talvez haja uma razão para você não ter feito isso, mas se você começar do Microsoft livre Deep Zoom Composer, ele vem com um DLL para fazer profunda Zooms, "DeepZoomTools.dll". Ele vai criar composições Deep Zoom de uma única imagem, ou compósitos de muitas imagens. (O ImageCreator classe faz o trabalho pesado de redimensionar imagens).

Você deve investigar as implicações de licenciamento Se você está desenvolvendo uma aplicação comercial, mas a reutilização de código é sempre melhor do que escrevê-lo você mesmo.

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