Gestion de la transparence avec GDI+

LOOPALINDAA Messages postés 5 Date d'inscription jeudi 28 janvier 2010 Statut Membre Dernière intervention 1 avril 2010 - 29 mars 2010 à 14:44
cs_Arnotic Messages postés 933 Date d'inscription dimanche 1 avril 2001 Statut Membre Dernière intervention 9 janvier 2012 - 1 avril 2010 à 11:59
bonjour,

j'ai un petit soucis au niveau de la gestion de la transparence en C++ a l'aide de GDI+.

j'arrive a gerer un peu la transparence mais des points sont apparu, est qui rend le tracer peu joli....

On m'a conseillé de tester la fonction UpdateLayeredWindow mais je n'arrive pas a le configurer normalement....

le Code de ma fonction:
[spoiler]
CDC* pDC;
pDC = GetDC();
Graphics g(pDC->m_hDC);
Pen pen(Color(50,128,128,128),20);
Pen clean(Color(0,255,255,255),20);

//tracage du CDC
if(m_PointOn == true)
{

if(Dlg->m_Trace == true)
{
if(m_Position.x != point.x || m_Position.y != point.y)
{
pen.SetStartCap(LineCapRound);
pen.SetEndCap(LineCapRound);
Dlg->UpdateLayeredWindow(pDC,NULL,NULL,NULL,NULL,0xff000000,NULL,ULW_COLORKEY);

//Lisse les tracer g.SetSmoothingMode(SmoothingModeHighQuality);
//trace la droite g.DrawLine(&pen,m_Position.x,m_Position.y, point.x, point.y);
}
}
/spoiler

7 réponses

cs_Arnotic Messages postés 933 Date d'inscription dimanche 1 avril 2001 Statut Membre Dernière intervention 9 janvier 2012
29 mars 2010 à 21:07
Dis nous ce que tu veux faire exactement.

De plus oublis GDI+ qui est aussi lent que ma grand mère. Aujourd'hui j'ai travaillé sur mon logiciel de cartographie au niveau de l'intégration de raster, par conséquent gérer leur superposition avec transparence. GDI+ mettait 2 secondes à m'afficher l'image finale, GDI instantané.

Laisse donc GDI+ pour les dotnetteur qui n'on pas besoin de productivité.


@+
Arnotic,
Admin CS
0
LOOPALINDAA Messages postés 5 Date d'inscription jeudi 28 janvier 2010 Statut Membre Dernière intervention 1 avril 2010
30 mars 2010 à 15:58
le soucis est que mon projet doit etre absolument
réalisé avec GDI+ ( cahier des charges :/ ).


Enfaite mon projet consiste a "simuler" un tableau numérique
avec quelque dessins simple dont une fonction surlignage, comme un stabilo quoi...

j'arrive donc à tracé avec un "effet" transparent mais celui-ci comporte un petit défaut:
les petits points qui apparaissent dans mon tracer...
Demain j'uploaderais un Screenshot des tracé pour mieux me faire comprendre ^^'
0
cs_Arnotic Messages postés 933 Date d'inscription dimanche 1 avril 2001 Statut Membre Dernière intervention 9 janvier 2012
30 mars 2010 à 16:03
Je crois voir ce que tu veux dire. J'ai aussi vu ça en m'essayant à la GDI+, problème qui n'apparait pas avec la GDI.

Essaye de jouer sur l'antialiasing j'avais remarqué des améliorations.

@+
Arnotic,
Admin CS
0
LOOPALINDAA Messages postés 5 Date d'inscription jeudi 28 janvier 2010 Statut Membre Dernière intervention 1 avril 2010
30 mars 2010 à 16:04
ok je donnerais des nouvelles une fois testé ;)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
LOOPALINDAA Messages postés 5 Date d'inscription jeudi 28 janvier 2010 Statut Membre Dernière intervention 1 avril 2010
1 avril 2010 à 09:50
j'ai tenté de modifier ma fonction SetSmoothingMode mais sans succes...

Apres avoir bien relu mon projet, GDI semble pouvoir collé peut tu me donner un exemple de transparence avec GDI.
0
LOOPALINDAA Messages postés 5 Date d'inscription jeudi 28 janvier 2010 Statut Membre Dernière intervention 1 avril 2010
1 avril 2010 à 11:29
0
cs_Arnotic Messages postés 933 Date d'inscription dimanche 1 avril 2001 Statut Membre Dernière intervention 9 janvier 2012
1 avril 2010 à 11:59
Sur ton image, le problème vient juste du fait que ton tracés reprend le point précédent.
Tu traces avec la fonction "DrawLine" pour chaque portion j'imagine ?

Si c'est le cas essaye "DrawLines" avec un S à la fin. Si la GDI+ fait bien son travail ton problème ne devrait plus apparaitre.


@+
Arnotic,
Admin CS
0
Rejoignez-nous