emf
to tylko lista poleceń GDI. W rzeczywistości mogą być one bardzo łatwo "odtwarzane" przez system, przy użyciu standardowego polecenia Windows GDI (w Delphi, TMetaFile
jest tylko opakowaniem wokół tych interfejsów API).
Kiedy IrfanView lub FastReport renderuje treść metaplików, po prostu użyj odpowiednich poleceń systemu Windows GDI. Gdy Windows 7 Paint renderuje zawartość metapliku, korzysta z renderera GDI +. Sądzę nawet, że wewnętrznie konwertuje plik emf
na format emf+
, a następnie renderuje go za pomocą antyaliasingu za pomocą GDI +.
Więc jeśli plik emf
renderuje nieprawidłowo IrfanView lub FastReport, podejrzewam, to dlatego, że nie jest dobrze metafile tworzą: silnik graficzny osoba trzecia używasz produkuje niestandardowe EMF. Możliwym problemem jest brak używanej czcionki w systemie docelowym, a GDI nie zastępuje czcionki tym samym, co GDI +.
Inną możliwością jest to, że plik emf
jest może podwójny Formatowanie : zawiera formatu zarówno emf
(który nie został prawidłowo utworzony tak nie jest wyświetlana poprawnie używając GDI) oraz format emf+
(który jest renderowany zgodnie z oczekiwaniami przy użyciu GDI +) . Zwykle ten format nie powinien istnieć: nawet oficjalna biblioteka GDI + nie zezwala na zapisanie zawartości metapliku w pliku emf +. Jest to pewnego rodzaju "potworny" format stworzony przez Twoją zewnętrzną bibliotekę.
Proponuję następujący:
- Pobierz i sprawdź plik
emf
z EmfExplorer;
- Spróbuj użyć GDI + do renderowania metapliku;
- Spróbuj użyć interfejsu API konwertera
emf
do emf+
.
Aby użyć GDI +, spójrz na Open Source SynGdiPlus unit: doda anty-aliasing GDI + do wytworzonej bitmapy. Jest w stanie przekonwertować emf
na emf+
. Będzie używać natywnego Vista/Seven API (podobnie jak Windows 7 paint) lub zwykłego kodu Delphi pod Windows XP.
Jak się tworząc plik meta? A co z niektórymi kodami? –
Przyglądając się temu bliżej na prawdziwym komputerze, rozpoznaję tego rodzaju efekt. Widziałem to z wyjściami własnego programu. Myślę, że jest to po prostu sposób, w jaki niektóre pakiety rasteryzują metaplik. Najwyraźniej metaplik jest w porządku, ponieważ jeden pakiet renderuje go dobrze. Innym programem, na który powinieneś spojrzeć, jest Word. Jeśli chcesz eksportować do konsumpcji za pomocą pakietu grafiki rastrowej, wyeksportuj jako bitmapę w formacie PNG. –
dziękuję za uwagi. @DavidHeffernan: metaplik jest tworzony przez mechanizm graficzny innej firmy. –