2009-01-18 13 views
7

Para citar el documentation for the System.Drawing.Imaging namespaceampliar la lista de formatos de imagen soportados en GDI +

La clase codificador permite a los usuarios ampliar GDI + para soportar cualquier formato de imagen.

Sin embargo, no puedo encontrar ninguna documentación, ejemplos o cualquier otra cosa que explica cómo me gustaría ir sobre la implementación de mi propio formato de archivo personalizado - la mayoría de las búsquedas devuelven un montón de información sobre cómo pasar EncoderParameters, pero nada en la aplicación de nuestros propios codificadores ?

Idealmente, me gustaría ser capaz de implementar esto en C#, pero estoy dispuesto a desempolvar mi ATL si es necesario :)

Ha venido alguien a través de cualquier documentación o son capaces de proporcionar cualquier punteros sobre cómo abordar esto?

Actualización:
probablemente debería hablar de las cosas que he probado hasta ahora, pero en vano:

  • Buscando los GUID devuelto en la clase ImageCodecInfo para ver si se trataba de un COM normales interfaz (pero no parece ser así), con la intención de ver las interfaces implementadas, o ver si se trata solo de una entrada de registro.
  • entró en Image.FromFile método para encontrar que es sólo un contenedor para gdiplus.dll
  • Las porciones de las búsquedas de Google, que parecen proporcionar un montón de casos de utilización de las existentes con especificando sus propios ImageEncoderParamerters; y algunos casos de personas implementando their owncodecs por otros medios.
  • incluso pidió en news://microsoft.public.win32.programmer.gdi

Respuesta

7

bien, aquí es algo de información logré desenterrar. Parece que la forma recomendada (por Microsoft) para hacer lo que desea es develop a WIC-enabled codec para su formato. La API de Windows Imaging Component (WIC) viene incorporada a Vista, pero también está disponible para XP y Win Server 2003, ya sea dentro de .NET 3 o como una descarga separada.

Sin embargo, también parece existir otra forma de ampliar la lista de códec GDI +, pero esas aguas son mucho más oscuras. Si abre gdiplus.dll en un editor hexadecimal, encontrará una referencia a la siguiente clave del registro:

Software\Microsoft\Imaging\Codecs 

Google para esa clave le enviará a un MSDN article que habla de registrar sus propios códecs de imagen en Windows Plataformas CE y Windows Mobile. Lo curioso es que el gdiplus.dll en XP tiene dicha clave de registro codificada en él. Sin embargo, no he comprobado si lo usa y no he intentado desarrollar mi propio códec, ya sea para WIC o para GDI +.

Espero que esta información ayude al menos a comenzar.

+0

Esto está ciertamente cerca de lo que estaba buscando - idealmente estoy buscando algo para apoyar v2 del framework como mínimo, pero ciertamente consideraré el enfoque de WIC. –

Cuestiones relacionadas