2009-03-02 15 views
5

No entiendo la relación entre Windows Imaging Component (WIC) y GDI +. He hecho un trabajo en el pasado que demostró que, por ejemplo, WIC produce codificaciones GIF visualmente superiores, pero me sorprende que no vea más personas que lo usen para el procesamiento de imágenes frente a GDI +. Sé que no tiene las operaciones de dibujo de GDI +, pero para la codificación/decodificación parece superior. Entonces, ¿por qué no vemos una migración?¿Cuál es la relación entre WIC y GDI +?

Respuesta

4

La relación (o más bien la diferencia entre) WIC y GDI + es que WIC es un marco de códec de imágenes extensible que permite a las aplicaciones que implementan el marco recibir soporte para nuevos formatos de imagen a través de códecs proporcionados. GDI + es un componente central de Windows que admite operaciones de dibujo como líneas, fuentes, degradados, etc.

Mientras que GDI + tiene soporte nativo para varios formatos de imagen comunes, los códecs WIC se pueden proporcionar para cualquier formato de imagen.

+0

De modo que, aparte de la codificación/decodificación nativa, WIC realmente no hace nada excepto ofrecer un marco para escribir más código. Para un conjunto tan superior de códecs nativos (en comparación con GDI +), uno pensaría que habría proporcionado un mejor puente entre GDI + y WIC. –

+1

Estoy investigando esto un poco más, y parece que hay un poco más que eso. WIC es la base de la mayoría de lo que WPF hace (ver http://blogs.msdn.com/dwayneneed/archive/2008/06/20/implementing-a-custom-bitmapsource.aspx), y de hecho WIC parece administrar píxeles al igual que GDI +. –

0

Entiendo que GDI + usa WIC para realizar ciertas tareas. Al menos, en Windows 7 lo hace.

Por favor, considere el siguiente código:

image.Write(target, ImageFormat.Gif); 

Cuando ejecuta este código en Windows XP usará el codificador GIF de GDI + para escribir la imagen como GIF. Cuando ejecuto el mismo código en Windows 7 usaré WIC Gif Encoder.

+0

no hay Image.Write (...). Probablemente quieras Image.Save (...) –

Cuestiones relacionadas