Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : GDI / GDI+ [ Divers / Général ] (mastoc)

mardi 15 janvier 2008 à 11:02:05 | GDI / GDI+

mastoc

Une petite question sur la compatibilité entre GDI et GDI+ !^^

Voilà je travail actuellement sur un logiciel utilisant GDI + pour afficher un certains nombre de composant (la majorité dira t'on). Par contre certains autres composants utilisent encore GDI pour tout un tas de raison dont un certains nombre de fonctionnalité qui sont présente dans la bibliothèque de ce dernier et qui ne sont plus présente dans GDI+.

Un petit exemple avec les textes : GDI permet de modifier la largeur et la hauteur d'un texte. GDI+ ne permet plus que modifer la taille du texte. En gros il n'est plus possible de faire des transformation en largeur sur un texte sans passer sur une homothétie... J'ai donc gardé GDI pour dessinner les textes.

Le problème : Les textes sont dessinés sur un Device Context en GDI puis passé en Graphics pour GDI+. En gros pour faire cela on récupère le DC du Graphics GDI+ on trace le composant GDI et on release le DC pour signaler la fin du tracer. Cela fonctionne mais si l'on se rapproche du texte on remarque qu'il n'est pas vraiment nikel. En gros on a l'impression d'avoir écrit sur du papier buvard.

La question : Comment est-il possible d'éviter cette dégradation de l'image en gardant GDI et GDI+ ? Pourquoi cette dégradation ?

capture d'écran :
[URL=http://imageshack.us][IMG]http://img214.imageshack.us/img214/1424/capture01pl1.jpg[/IMG][/URL]

(le lien direct ici : http://img214.imageshack.us/img214/1424/capture01pl1.jpg).

L'image est encore dégrader par le format de compréssion mais en gros autour du texte rouge il y a une sorte de halo noir. D'où sort-il ? En plus j'ai remarqué que suivant le zoom le halo disparaissait...

Voilà j'espère que quelqu'un aura une solution.

Merci


Vive les Moutons !

mardi 15 janvier 2008 à 12:44:24 | Re : GDI / GDI+

mastoc

Alors personne ne se lance ? J'ai pas vraiment trouvé de réponse mais sur MSDN. Le sujet est abordé sans réel conviction et sans de véritables réponses...

Vive les Moutons !

mardi 15 janvier 2008 à 16:38:51 | Re : GDI / GDI+

mastoc

Je suis toujours à la recherche de réponses^^. C'est un peu urgent c'est pour cela que je relance régulièrement le sujet.

Vive les Moutons !

mercredi 16 janvier 2008 à 16:59:11 | Re : GDI / GDI+

mastoc

Bon ok je reformule ma demande. Est ce que qq sait dans quelle mesure il pourrait y avoir des problèmes entre GDI et GDI+ pour l'affichage ?

Vive les Moutons !

vendredi 15 février 2008 à 16:49:06 | Re : GDI / GDI+

mastoc

Bon pas de réponses.

A priori j'ai peut être trouvé. En GDI il n'y a pas d'anti-aliasing.

La réponse est courte^^. Bon en fait sur le logiciel sur lequel je bosse (je n'ai pas assez d'expérience pour dire s'il fonctionne tous de la même façon) la transparence autour d'un objet est matérialisé par du noir. On a donc le texte qui est écrit sur un fond noir. A un moment donné l'ensemble des images qui doivent être rendu à l'écran son fusionner et c'est là que le détourage s'effectue.
Comme je l'ai expliqué plus haut je travail sur un Graphics GDI+ qui lui accepte l'anti aliasing.
Etant donné que les pixel noir apparaissent sur les parties du textes qui devrait subire un traitement anti-aliasing, je subodore qu'il s'agit d'un reste de fond noir servant à la transparence. GDI+ cherche à faire un traitement anti-aliasing et garde les pixels nécessaires de l'image d'origine. Comme en GDI il n'y a pas d'anti aliasing et bien il garde les pixels du fond noir servant à la transparence.

Voilà c'est assez simpliste comme explication et je n'ai pas encore la solution. Si qq'un connait ?

Vive les Moutons !

mardi 26 février 2008 à 15:37:43 | Re : GDI / GDI+

ToutEnMasm

C'est toujours un peu désolant de voir une question sans réponse.
Je me lance.

Je n'ai pas l'impression d'écrire sur du papier buvard avec gdi + et on peut modifier du texte dessiné avec gdi +.

Un rectangle est défini dans gdi+ et c'est cela que l'on déforme et donc le texte suit la déformation.

Un petit exemple de papier buvard avec gdi+ pourrait peut être éclairer la question ?


mercredi 27 février 2008 à 09:31:41 | Re : GDI / GDI+

mastoc

Attention je tiens à souligné que j'utilise GDI pour les textes (car plus souple) et qu'ensuite j'insére l'objet dans un Graphics GDI+. Donc le processus est le suivant pour le tracé du texte :
-> Récupération du Graphics ;
-> Récupération du Device context de ce Graphics ;
-> Dessin du texte en GDI dans le Device Context ;
-> Et je crois libération du Device Context.

Tout ceci fonctionne. En fait le problème semble se trouver un peu plus en aval.
Comme je l'expliquais GDI ne fait pas d'anti aliasing. Or GDI+ possède de l'anti aliasing. Mon texte est tracé sur un layer transparent et la transparence est représenté par un calque noir. Lorsque je veux fixer cette image à l'écran une fusion de tous les "calques" est effectué. A ce moment là les "calques" sont en GDI+ et je pense qu'à la fusion GDI + essaye d'appliquer l'antialiasing à un calque qui n'en a pas. D'où le halo noir autour des texte (le noir qui est la couleur de la transparence) précisément aux endroit où il aurait du y avoir de l'anti aliasing.

Je crois que c'est parceque il n'y a pas d'anti aliasing au départ sur les textes qu'ensuite durant la fusion apparraissent ces tâches noir.
Voici une image généré au cours de la fusion de 2 calques (il y en a 3 au totals chacun ayant un type de données différent).



Vive les Moutons !



Cette discussion est classé dans : texte, gdi, gros, textes, img214


Répondre à ce message

Sujets en rapport avec ce message

Gros prob, help me !!! [ par sebastienbro ] Voilà, j'aimerai récupérer le texte entrer par l'utilisateur, mais pas dans mon application, mais dans une autre. Par exemple, mon appli est cachée es ecrire du texte sur une image bmp sans utiliser Le GDI [ par zilou ] salut à tousEn utilisant le GDI, avec le code de brunews, mon problème est que je n'arrive pas à faire disparaitre la fenêtre. En effet mon programme editeur de texte pour gros fichiers [ par yepla75 ] Salut les gens,Un problème du notepad (et aussi word, wordpad), c'est que pour ouvrir de gros fichiers texte (>100Mo), ça rame, voire ça plante.Si on Lecture d un gros fichier texte [ par Amanobuo ] Salut ! J aimerai savoir quoi utiliser pour ouvrir un "gros" fichier texte (environ 5ko)avec fread, ca passe pas, ou j ai mal passe mes parametres... Afficher du texte avec GDI [ par DMK04 ] Bonjour,j'ai une fenêtre dans laquelle je trace des courbes et je voudrais mettre rajouter une légende. Quelle est la meilleur solution ? Une autre fe Probleme de fonction retournant du texte [ par anthropo ] bonjour à tous, je suis débutant de chez Débutant et je cherche à modifier une dll écrite en C++ pour en augmenter ses fonctions. Je cherche notamment LPCVOID - Modifier le contenu [ par noobs ] Salut! C'est mon premier post Bon ma question est la suivante : J'ai une fonction write_to_file(LPCVOID texte) qui se charge d'ecrire une chain Sauvegarder float en fichier texte [ par kididouille ] Bonjour, j'ai un tableau de float et j'aimerai l'enregistrer dans un fichier texte.A l'ouverture de ce fichier texte (avec le bloc note par exemple) j [VC++] Recuper le contenu d'une zrone de texte [ par colargol ] Salut a tous,Je suis debutant en MFC, je developpe une application en MFC ou ma boite de dialogue contient une oage HTML.Ma classe principale est CDHt Texte en 3d [ par nisaloncaje ] Rebonjour à tous !!!Ben voila, comme d'habitude j'ai des petits problèmes ;)En fait, j'ai un pavé, et j'aimerai mettre sur chacune de ses faces un tex


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version


HTC G1

Entre 449€ et 449€


Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,281 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.