2009-04-24 11 views
0

Guten Tag,Reliable .wmf/wmf Pixel basierte Bildkonvertierung

ich mit .net internen (System.Drawing) basiert MetaFile/Bild Umgang mit .wmf-Dateien, die containt transparente Bereiche leichte Probleme habe. Grundsätzlich, wenn ich eine MetaFile.LoadFile (...) mache und nehme es, um es als tiff/png usw. zu speichern, einige Bereiche dieser Quelldateien fehlen. Ich kann es nicht wirklich festhalten, aber es scheint so, als ob die vektorbasierten Informationen in der Metadatei einfach funktionieren, aber die pixelbasierten Bereiche (z. B. ein Bild innerhalb der .wmf) fehlen.

Kennt jemand eine zuverlässige, .net native und nicht 3rd-Party Möglichkeit, WMF-Dateien richtig zu konvertieren (wie in .. das endgültige Pixel-basierte Bild sieht aus wie die .wmf .. nur .. gut .. pixelig)?

Beifall und Dank, -J

Antwort

0

Ok, auch das scheinbar am zuverlässigsten Weise Metadateien (WMF/emf) in ein anderes Format zu transformieren ist, als Ausgabeformat zu verwenden, PNG, als irgendwo in der Beschreibung Msdn Metadateien intern gehandhabt werden/umgewandelt in PNG Format sowieso (mit Alpha usw.) und z Ein Metafile.Save ("somewher" ...) würde standardmäßig in png ImageFormat ausgegeben.

Wenn Sie also ein Nicht-PNG-Bild aus einer Metafile-Eingabe erstellen möchten, erhalten Sie das beste Ergebnis, wenn Sie die Extra-Meile gehen, & speichern und als PNG speichern und dann wandeln Sie es in Ihr endgültiges Format um. Kinda lame, aber dann wieder .. wmf selbst ist sowieso komisch und ich bin zu der (meiner persönlichen) Schlussfolgerung gekommen, dass es böse ist. ;)

-J

0

Das Problem ist, dass .NET GDI +, während WMF/EMF GDI ist. Es ist wichtig zu wissen, dass GDI + nicht mit GDI kompatibel ist, sie haben völlig unterschiedliche APIs und Fähigkeiten. Daher verhalten sich einige Vorgänge in GDI-Metadateien nicht wie erwartet. Transparente Bitmaps, aber auch Welttransformationen auf Metafiles etc. funktionieren oft nicht so wie von Microsoft angekündigt.

Das Beste, was ich bis jetzt bekommen habe, ist die Metadatei in natives GDI + zu konvertieren, das erfordert, den GDI-Stapel zu emulieren und einige wichtige Verbesserungen anzuwenden, um Textpositionierung usw. richtig zu machen.

Werfen Sie einen Blick auf EMFExplorer, die dort gefundenen Informationen könnten sehr hilfreich sein. http://www.codeproject.com/KB/GDI-plus/emfexplorer.aspx