2011-07-07 10 views
10

Como dije en el título. Solo quiero saber cuál es mejor entre usar archivos de imagen y dibujar formas vectoriales (o ruta). Sé que el uso de vectores es mejor para la apariencia, pero ¿qué pasa con el rendimiento.¿Qué es mejor? Entre usar el archivo de imagen y dibujar la forma del vector

Y si esto depende de los casos. ¿Alguien puede explicarlo?

(Esta pregunta puede incluir WP7, Silverlight, WPF o incluso en los casos generales.)

Respuesta

19

Aquí hay una respuesta general para comparar los pros/contras de Bitmap (lo que creo que quieres decir con "archivo de imagen") vs. Vector.

Las imágenes basadas en mapas de bits (gif, tiff, jpeg, png, bmp) son esencialmente el concepto de asignar colores (y otros datos como la capa alfa) a una cuadrícula de píxeles. Los diferentes formatos de archivo ofrecen variaciones de lo que se admite y niveles de compresión, pero este es el concepto de alto nivel. El mapa completo de píxeles y datos se almacena en el archivo como una matriz/tabla.

Las imágenes basadas en vectores, como dices, están basadas en rutas. En lugar de almacenar información en píxeles, el formato de archivo almacenará puntos geométricos y datos.

Los pros de mapas de bits son:

  • Por lo general rinden más rápido que un vector. Esto se debe a que hay un cálculo mínimo involucrado en la presentación de la imagen (simplemente tome el mapa de píxeles y la pantalla).

  • Manejan el contenido "fotográfico" mejor que un vector.

  • Son más portátiles que los vectores. GIF, JPEG, PNG, BMP son más estándar que cualquier formato vectorial (donde por lo general Adobe tiene el mercado)

Las desventajas de los mapas de bits son:

  • Ellos no se escalan sin degradación (pixelización)

  • Manipulación (es decir,cambio de tamaño, desenfoque, iluminación, etc) de un mapa de bits es más procesador caro que un vector

  • los archivos son generalmente mucho más grandes que los archivos basados ​​en vectores

los pros para vectores son:

  • flexible para el escalado y la manipulación

  • formatos de archivo más pequeño que el vector

  • Ideal para impresión y animación (es decir la manipulación de una forma para producir el efecto de animación)

Las desventajas para los vectores son:

  • Render tiempo, dependiendo de la complejidad del vector, puede ser más largo

  • Portabilidad más los formatos son altamente propietarios

  • Trabajo para imágenes "gráficas" pero no útiles para el realismo fotográfico

Espero que esto ayude.

+1

¡WOW! Que explicación tan detallada. Muchas gracias por su respuesta. Esto me ayuda mucho a comprender el vector y la imagen. – anuith

2

Sobre la base de nuestra experiencia con Phone 7 (No-mango) de Windows, nos encontramos con el uso de imágenes en lugar de utilizar el dibujo produce una mucha más capacidad de respuesta, por lo tanto, UX Performance para la animación continua en páginas. (YMMV)

1

Diría que las imágenes se procesan más rápido que los vectores. Cuanto más complejo es el vector, más tiempo se necesita para renderizar. Cuanto más grande sea la imagen, más tiempo para renderizar.

Voy a especular que (en términos de Silverlight) la mayor parte del hardware de video actual es capaz de manejar directamente las imágenes, obteniendo así un aumento en el rendimiento. No estoy seguro de si los cálculos de los vectores se pueden hacer a nivel de hardware de video.

5

Jeremiah Morrill dio un great overview of WPF rendering que básicamente muestra que un vector siempre será más costoso de renderizar que una imagen. Básicamente, una imagen se trata como una textura de directx ... sin importar el tamaño, la escala o lo que sea, hay un costo constante establecido para representar una imagen. Como muestra la visión general de Jer, incluso la imagen vectorial más simple requiere una serie de operaciones para representar en WPF. La moraleja de la historia es que al dar una opción, vaya por la imagen en lugar de vector.

+0

El enlace ya no está disponible – altso

+0

El enlace está arreglado ahora. –

1

Desde el punto de vista de Windows Phone 7, normalmente obtendrá una reproducción más rápida de imágenes/mapas de bits en lugar de rutas/vectores. Como regla general para el desarrollo móvil, debido a los recursos limitados en el dispositivo y la mayor necesidad de considerar el rendimiento, si puede hacer algo una vez, como preparar una imagen, en el momento del diseño (o compilación) es definitivamente preferible hacerlo. varias veces en cada cliente.

Tenga mucho cuidado al aplicar las reglas en todas las plataformas (WPF, Silverlight & WP7) ya que se utilizan para cosas diferentes en situaciones diferentes y se encuentran bajo diferentes restricciones. Las cosas que debe considerar por teléfono pueden no ser tan importantes en una aplicación WPF que se ejecuta en una PC de alta potencia.

Cuestiones relacionadas