Pregunta

Supongamos que tengo un mapa de bits con un aspecto cuadrado y un ancho de 2048 píxeles.

Para crear un conjunto de archivos que necesita Silverlight's DeepZoomImageTileSource , necesito escalar este mapa de bits a 1024, luego a 512 y luego a 256, etc., hasta una imagen de 1 píxel.

Hay dos, sospecho ingenuo, enfoques: -

  1. Para cada imagen requerida, escale la imagen original de tamaño completo al tamaño requerido. Sin embargo, parece excesivo escalar la imagen completa a tamaños muy pequeños.
  2. Después de escalar de un nivel al siguiente, descarte la imagen original y escale cada imagen escalada sucesiva como la fuente de la siguiente imagen más pequeña. Sin embargo, sospecho que esto generaría imágenes en el rango de 256-64 con poca fidelidad que usar la opción 1.

Tenga en cuenta que, a diferencia del Deep Zoom Composer, se espera que esta herramienta actúe a pedido, por lo tanto, debe completarse en un plazo razonable (30 segundos como máximo). Por otro lado, solo estoy creando una sola imagen multiescala, no una pirámide de múltiples imágenes de alta resolución.

Estoy fuera de mi zona de confort aquí, ¿algún experto en gráficos recibió algún consejo? ¿Estoy equivocado sobre el punto 2? ¿El punto 1 es razonablemente eficiente y no me preocupa nada? Opción 3?

¿Fue útil?

Solución

Acerca de 1: esta parece ser la mejor manera. Y no es tan excesivo si no recarga la imagen de origen cada vez.

Acerca de 2: Sí, perderías (algo) de calidad al escalar en pasos.

Creo que 30 segundos deberían ser suficientes para escalar una imagen (algunas veces). Cualquier optimización estaría en el área de almacenamiento en caché de los resultados.

Otros consejos

Lo que esencialmente está intentando hacer es crear MipMaps (consulte http://en.wikipedia.org / wiki / Mipmap ). Si comienza con una potencia de imagen cuadrada de 2, luego reducir la imagen a la mitad del tamaño y luego usar la imagen reducida para reducir su tamaño en 2 nuevamente debería dar los mismos resultados que tomar la imagen original y reducirla en un factor de 4.

Cada píxel en la imagen de tamaño medio será el promedio de 4 píxeles en la imagen original. Cada píxel en la imagen de tamaño cuarto será el promedio de 16 píxeles. No importa si toma el promedio de 16 píxeles o el promedio de 4 píxeles, donde el promedio de otros 4 píxeles.

Entonces, diría que estaría bien con reducir gradualmente las imágenes como mencionó en la opción 2. Si quiere estar seguro, intente en ambos sentidos y compare las imágenes.

Me doy cuenta de que esta pregunta es antigua, y tal vez hay una razón por la que no lo ha hecho, pero si obtiene el Deep Zoom Composer gratuito de Microsoft, viene con una DLL para hacer Deep Zooms, "DeepZoomTools.dll". Creará composiciones de Zoom Profundo de una sola imagen, o compuestos de muchas imágenes. (La clase ImageCreator hace el trabajo pesado de cambiar el tamaño de las imágenes).

Debe investigar las implicaciones de la licencia si está desarrollando una aplicación comercial, pero reutilizar el código siempre es mejor que escribirlo usted mismo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top