Pregunta

Buenas tardes,

Estoy teniendo un pequeño problema con interno (System.Drawing) la manipulación MetaFile / Imagen basada de .NET de archivos .wmf que containt áreas transparentes. Básicamente cada vez que hago un MetaFile.LoadFile (...) y tienen que guardarlo como un archivo TIFF / png etc, algunas áreas de que los archivos de código faltan. Realmente no puedo precisarlo, pero -seems- como base las informaciones del vector dentro del metarchivo solo funciona bien, pero las áreas basadas en píxeles (por ejemplo, una imagen colocada dentro del .wmf) se echa en falta.

¿Alguien sabe de una manera fiable, .net nativos y no-tercera parte para convertir archivos WMF correctamente (como en la imagen .. píxel basado última se parece a la .wmf .. solo .. bueno .. pixelada)

Saludos y gracias, -J

¿Fue útil?

Solución 2

Ok, así lo aparentemente más fiable manera de transformar metarchivos (.wmf / .emf) en otro formato es utilizar PNG como formato de salida, como en algún lugar de la descripción meta archivos de MSDN se manejan internamente / transformado en formato png de todos modos ( con alfa etc) y, por ejemplo un Metafile.Save ( "somewher" ...) de forma predeterminada emitiría en PNG ImageFormat.

Así que en caso de que desee crear una imagen no png de una entrada de metarchivo, se obtiene el mejor resultado si vas más allá, transformar y almacenar como un png, y tomar ese png y volver a transformar a su formato final. Un poco escaso, pero de nuevo .. WMF sí es raro de todos modos y me ha venido al (mi personal) conclusión de que es el mal. ;)

-J

Otros consejos

El problema es que .NET es GDI +, mientras que WMF / EMF es GDI. Es importante saber que GDI + no es compatible con GDI, tienen completamente diferentes APIs y capacidades. Por lo tanto, algunas operaciones en metarchivos GDI no se comporta como se esperaba. mapas de bits transparentes, sino también transformaciones mundiales en metafiles etc. hacer a menudo no funcionan realmente como dicen por Microsoft.

El mejor que he conseguido hasta ahora es convertir el metarchivo a GDI + nativa, lo que requiere la emulación de la pila GDI y aplicar algunos ajustes importantes para conseguir el posicionamiento de texto, etc. derecha.

Tener un vistazo a EMFExplorer, la información que se encuentra podría ayudar mucho. http://www.codeproject.com/KB/GDI-plus/emfexplorer. aspx

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