Jeśli mam obraz wmf lub emf w System.Drawing.Image, czy istnieje sposób na zapisanie danych metapliku za pomocą C# bez renderowania go jako bitmapy? Wywołanie Image.Save spowoduje renderowanie go do bitmapy i chcę zachować oryginalne dane, aby nadal był prawidłowym plikiem w formacie .wmf lub .emf.Zapisz metaplik w C#
Odpowiedz
Wygląda na to, że nie możesz.
Na this MSDN page, jest powiedziane:
Uwagi
Podczas korzystania z metody Save, aby zapisać obraz graficzny jako formacie Windows Metafile (WMF) lub pliku rozszerzony format graficzny (EMF), wynikowy plik jest zapisywany jako plik Portable Network Graphics (PNG). Takie zachowanie występuje, ponieważ komponent GDI + systemu .NET Framework nie ma kodera, którego można użyć do zapisywania plików jako plików .wmf lub .emf.
Pomimo tej strony MSDN, możliwe jest zapisanie prawdziwego pliku EMF. Zobacz to pytanie: gdi-c-how-to-save-an-image-as-emf
zobacz odpowiedź użytkownika120789 w powyższym linku – user1027167
Możliwe jest zapisanie metapliku w jego formacie orignal, jeśli używasz gdi32.dll.
Używam metody opisanej here i działa dobrze.
możliwy duplikat [GDI +/C#: Jak zapisać obraz jako EMF?] (Http://stackoverflow.com/questions/152729/gdi-c-how-to-save-an-image-as-emf) – finnw