2009-09-14 6 views
4

forcée Notre programme doit générer des graphiques vectoriels, et nous avons choisi EMF pour cela. Cependant, il semble que d'autres programmes rendent ces images non anti-aliasées. J'ai trouvé que le format SVG a un drapeau pour indiquer que certains/tous les objets devraient être anti-aliasés.EMF avec anticrénelage

Y at-il sorte de drapeau ou de commande dans le format EMF pour indiquer que nous voulons avoir anticrénelage? Si oui, comment générer cette commande en utilisant la classe System.Drawing.Imaging.Metafile?

Merci.

Répondre

11
fichier

EMF est une liste de commandes GDI. Donc, il ne sera pas anti-aliaisé, même si sous GDI +, vous mettez un appel SmoothingMode() avant le dessin. Vous devrez énumérer les commandes GDI, puis les traduire en commandes GDI +.

Sous Vista/Seven, vous pouvez utiliser GDI + 1.1 fonction nommée GdipConvertToEmfPlus/ConvertToEmfPlus. Si vous voulez que votre programme fonctionne avec Windows XP, vous devez écrire votre propre énumération, puis la conversion en commandes GDI +. Nous avons done this in Delphi, peut-être que le code source peut vous aider.

+2

@MisterDownVoter s'il vous plaît donner quelques explications de votre -1! Les fichiers EMF ne seront jamais neutralisés même si SmoothingMode est défini sur AntiAlias. Vous devez le convertir au format EMF + avant. La réponse de Josh ci-dessus n'est pas correcte, la mienne est. Je l'ai seulement écrit ici parce que la réponse précédente ne fonctionnait pas, et j'ai passé beaucoup de temps à trouver une solution. –

Questions connexes