[C] Problème de transparence d'une image sur un graphic
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
- parazitenew
- Niveau 7

- Messages : 310
- Enregistré le : sam. 10 déc. 2011 15:08
- Localisation : Algerie
- Status : Hors ligne
[C] Problème de transparence d'une image sur un graphic
Bonjour,
J'ai mis un logo (format ico avec de la transparence) par dessus un GuiCtrlCreateGraphic(), la couleur de fond du graphic est différente de celle du GUI. La couleur de fond qui apparaît derrière le logo est celle du GUI et non du graphic. Problématique.
J'ai lu dans l'aide à propos du graphic que si on voulait superposer un control par dessus il fallait mettre GuiCtrlSetState($GUI_DISABLE), c'est ce que j'ai fait, pour le graphic, puis pour l'icone, puis les deux en même temps et ça n'a pas marché. La couleurs de fond de l'icone était toujours celle du GUI au lieu celle du graphic.
Evidemment les solutions alternatives existent, comme créer une image de la taille du graphic et mettre l'icone par dessus avec Gimp par exemple et l'ajouter en temps que bmp. Mais je veux tout de même comprendre ce problème.
Merci.
J'ai mis un logo (format ico avec de la transparence) par dessus un GuiCtrlCreateGraphic(), la couleur de fond du graphic est différente de celle du GUI. La couleur de fond qui apparaît derrière le logo est celle du GUI et non du graphic. Problématique.
J'ai lu dans l'aide à propos du graphic que si on voulait superposer un control par dessus il fallait mettre GuiCtrlSetState($GUI_DISABLE), c'est ce que j'ai fait, pour le graphic, puis pour l'icone, puis les deux en même temps et ça n'a pas marché. La couleurs de fond de l'icone était toujours celle du GUI au lieu celle du graphic.
Evidemment les solutions alternatives existent, comme créer une image de la taille du graphic et mettre l'icone par dessus avec Gimp par exemple et l'ajouter en temps que bmp. Mais je veux tout de même comprendre ce problème.
Merci.
Modifié en dernier par parazitenew le sam. 06 juin 2015 01:46, modifié 1 fois.
Re: [..] Problème de transparence d'une image sur un graphic
Je sais pas si j'ai bien compris ton problème, mais si tu veux placer un élément à l'écran tel que ton icône, tu peux utiliser GdiPlus.
Bon je suis pas un pro, mais grâce aux scripts que m'ont fournis les membres du forum, je sais faire plein de choses maintenant
!
Donc le script que je t'ai passé permet à ton icône (que tu places sur un graphique (blanc ici)) de conserver la couleur de transparence de ton graphique, et de ne pas prendre la couleur de la GUI (étant rouge).
En espérant t'avoir aidé!
Bon je suis pas un pro, mais grâce aux scripts que m'ont fournis les membres du forum, je sais faire plein de choses maintenant
Donc le script que je t'ai passé permet à ton icône (que tu places sur un graphique (blanc ici)) de conserver la couleur de transparence de ton graphique, et de ne pas prendre la couleur de la GUI (étant rouge).
En espérant t'avoir aidé!
- Fichiers joints
-
- fenetre.rar
- (9.94 Kio) Téléchargé 84 fois
"Là où la volonté est grande, les difficultés diminuent.", Niccolò Machiavelli
- parazitenew
- Niveau 7

- Messages : 310
- Enregistré le : sam. 10 déc. 2011 15:08
- Localisation : Algerie
- Status : Hors ligne
Re: [..] Problème de transparence d'une image sur un graphic
Merci pour la réponse, mais dans ton script il n'y a aucune référence à l'icone.
Un screenshot qui illustre mon problème.
Un screenshot qui illustre mon problème.
Re: [..] Problème de transparence d'une image sur un graphic
Tu veux un résultat comme la photo en annexe?
Si oui je vois pas où est le problème avec mon code...
J'ai fait la même chose avec une image d'arbre à fond transparent et fond ciel, le tout sur une GUI rouge, ce n'est pas ce que tu voulais?
Télécharge le fichier ici (il est trop volumineux pour le site, c'est une belle photo d'arbre
).
Si oui je vois pas où est le problème avec mon code...
J'ai fait la même chose avec une image d'arbre à fond transparent et fond ciel, le tout sur une GUI rouge, ce n'est pas ce que tu voulais?
Télécharge le fichier ici (il est trop volumineux pour le site, c'est une belle photo d'arbre
"Là où la volonté est grande, les difficultés diminuent.", Niccolò Machiavelli
- mikell
- Spammer !

- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: [..] Problème de transparence d'une image sur un graphic
C'est vrai qu'avec les GUICtrlCreateIcon la transparence c'est un réel problème
Ya que 2 solutions : utiliser GDI+ , ou créer un "fond" au controle en le scotchant sur une gui fille de taille et couleur vouluesou carrément utiliser l'udf Icons.au3
Ya que 2 solutions : utiliser GDI+ , ou créer un "fond" au controle en le scotchant sur une gui fille de taille et couleur voulues
► Afficher le texte
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Re: [..] Problème de transparence d'une image sur un graphic
Mikell, mon script était bon au fait?
"Là où la volonté est grande, les difficultés diminuent.", Niccolò Machiavelli
- mikell
- Spammer !

- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: [..] Problème de transparence d'une image sur un graphic
Oui, il est très basique et il y manque des trucs mais dans le principe il est bon
Ce que je lui reprocherais c'est juste de ne pas répondre à la question posée : tu fais un GUICtrlCreatePic où tu superposes 2 png, alors que la question parle d'une icone sur un GUICtrlCreateGraphic
Certes ce sont des détails mais ils ne sont pas anodins
Ce que je lui reprocherais c'est juste de ne pas répondre à la question posée : tu fais un GUICtrlCreatePic où tu superposes 2 png, alors que la question parle d'une icone sur un GUICtrlCreateGraphic
Certes ce sont des détails mais ils ne sont pas anodins
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
- parazitenew
- Niveau 7

- Messages : 310
- Enregistré le : sam. 10 déc. 2011 15:08
- Localisation : Algerie
- Status : Hors ligne
Re: [..] Problème de transparence d'une image sur un graphic
Bonjour,
J'ai testé la solution de la fenêtre fille. Elle marche, mais ne serait-ce pas lourd pour le script? Ne risquerait-il pas d'y avoir des complications plu tard? Surtout que les 2 GUI partagent les mêmes constantes. Comme le $GUI_EVENT_CLOSE.
J'ai testé le GDIPlus, avec_GDIPlus_GraphicsFillRect(), toujours le même problème, l'icone ne prend pas le fond du rectangle.
J'ai testé l'UDF Icons.au3 que j'ai téléchargé depuis le forum ENG. ça n'a pas marché. Il existe 3 fonctions, celle qui m'intéresse c'est:
La fonction est sensée être écrite comme ceci:
Mais ça ne change rien, j'ai choisi un fond bleu exprès pour qu'il soit visible:
J'ai testé la solution de la fenêtre fille. Elle marche, mais ne serait-ce pas lourd pour le script? Ne risquerait-il pas d'y avoir des complications plu tard? Surtout que les 2 GUI partagent les mêmes constantes. Comme le $GUI_EVENT_CLOSE.
J'ai testé le GDIPlus, avec_GDIPlus_GraphicsFillRect(), toujours le même problème, l'icone ne prend pas le fond du rectangle.
J'ai testé l'UDF Icons.au3 que j'ai téléchargé depuis le forum ENG. ça n'a pas marché. Il existe 3 fonctions, celle qui m'intéresse c'est:
D'après les paramètres elle devrait prendre en compte les icones lu à partir des dll. Et d'après la description:_SetIcon($hWnd, $sIcon, $iIndex = 0, $iWidth = -1, $iHeight = -1, $hOverlap = 0)
► Afficher le texte
► Afficher le texte
- Fichiers joints
-
- Capture1.PNG (6.34 Kio) Vu 2011 fois
- mikell
- Spammer !

- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: [..] Problème de transparence d'une image sur un graphic
Hum bizarre que l'udf Icons.au3 ne marche pas vu qu'elle a été conçue précisément pour résoudre le type de problème que tu évoques. Tu as testé avec des icones de dll système ou juste avec les icones d'une dll custom ?
Pour la gui fille, je ne pense pas que ce soit particulièrement lourd pour le script, tous les controles "classiques" étant en fait des gui filles (directement gérées par windows)
Le seul souci pourrait venir du fait qu'on n'a pas une "vraie" transparence, parce qu'on ne fait que donner à l'icone une couleur de fond identique à celle du GuiCtrlCreateGraphic
Pour les solutions alternatives à base de GDI+ yen a certainement plusieurs qui marcheraient (ex. la solution sozarienne) mais vu que tu n'as pas posté de code testable on ne peut qu'émettre des hypothèses ^^
Pour la gui fille, je ne pense pas que ce soit particulièrement lourd pour le script, tous les controles "classiques" étant en fait des gui filles (directement gérées par windows)
Le seul souci pourrait venir du fait qu'on n'a pas une "vraie" transparence, parce qu'on ne fait que donner à l'icone une couleur de fond identique à celle du GuiCtrlCreateGraphic
Pour les solutions alternatives à base de GDI+ yen a certainement plusieurs qui marcheraient (ex. la solution sozarienne) mais vu que tu n'as pas posté de code testable on ne peut qu'émettre des hypothèses ^^
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
- parazitenew
- Niveau 7

- Messages : 310
- Enregistré le : sam. 10 déc. 2011 15:08
- Localisation : Algerie
- Status : Hors ligne
Re: [..] Problème de transparence d'une image sur un graphic
J'utilise ma propre dllHum bizarre que l'udf Icons.au3 ne marche pas vu qu'elle a été conçue précisément pour résoudre le type de problème que tu évoques. Tu as testé avec des icones de dll système ou juste avec les icones d'une dll custom ?
Premier code:Pour les solutions alternatives à base de GDI+ yen a certainement plusieurs qui marcheraient (ex. la solution sozarienne) mais vu que tu n'as pas posté de code testable on ne peut qu'émettre des hypothèses ^^
► Afficher le texte
► Afficher le texte
Je voulais joindre la dll mais l'extension n'est pas autorisée.
edit:
- Fichiers joints
-
- a.rar
- (74.6 Kio) Téléchargé 61 fois
Modifié en dernier par parazitenew le jeu. 04 juin 2015 23:02, modifié 1 fois.
- mikell
- Spammer !

- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: [..] Problème de transparence d'une image sur un graphic
Ben change l'extension ou fais un zip ^^parazitenew a écrit :Je voulais joindre la dll mais l'extension n'est pas autorisée.
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
- parazitenew
- Niveau 7

- Messages : 310
- Enregistré le : sam. 10 déc. 2011 15:08
- Localisation : Algerie
- Status : Hors ligne
Re: [..] Problème de transparence d'une image sur un graphic
C'est fait. J'ai édité le post précédent.mikell a écrit :Ben change l'extension ou fais un zip ^^parazitenew a écrit :Je voulais joindre la dll mais l'extension n'est pas autorisée.
- mikell
- Spammer !

- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: [..] Problème de transparence d'une image sur un graphic
Effectivement...
Le problème semble inhérent au GUICtrlCreateIcon donc personnellement je ne vois pas d'autre solution que la gui fille
Le problème semble inhérent au GUICtrlCreateIcon donc personnellement je ne vois pas d'autre solution que la gui fille
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
- parazitenew
- Niveau 7

- Messages : 310
- Enregistré le : sam. 10 déc. 2011 15:08
- Localisation : Algerie
- Status : Hors ligne
Re: [..] Problème de transparence d'une image sur un graphic
Compris.
Y a-t-il une balise pour dire que le sujet est clos sans pour autant dire que c'est résolu?
Y a-t-il une balise pour dire que le sujet est clos sans pour autant dire que c'est résolu?
- mikell
- Spammer !

- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: [..] Problème de transparence d'une image sur un graphic
Oui, balise [C] 
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )

