Expert de XFree , comment faire de la transparence ?

Expert de XFree , comment faire de la transparence ? - C++ - Programmation

Marsh Posté le 17-12-2002 à 17:08:51    

Salut,
 
J ai besoin d utiliser la transparence dans un programme sous linux ... mais je n ai pas trouvé comment faire.
 
J utilise la fonction XPutImage , et il n y a pas d option pour definir la couleur transparente...
 
Quelqu un peut il maider ?
 
merci

Reply

Marsh Posté le 17-12-2002 à 17:08:51   

Reply

Marsh Posté le 18-12-2002 à 13:10:19    

:??:

Reply

Marsh Posté le 18-12-2002 à 16:43:31    

:cry:

Reply

Marsh Posté le 19-12-2002 à 20:24:35    

:bounce:

Reply

Marsh Posté le 19-12-2002 à 20:31:51    

Il y a pas de transparence dans XFree.
 
Il faut que tu récupère l'image sous-jacente (j'sé pas comment on fait), que tu fusionnes cette image avec ce que tu veux afficher, et enfin que tu fasse un XPutImage.
 
C'est ce que l'on appelle la pseudo transparence.


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 19-12-2002 à 20:45:21    

Si il y a avec l'extension XRender :)

Reply

Marsh Posté le 19-12-2002 à 21:25:42    

ok , sorry je me suis mal expliqué, c pas vraiment de la transparence que je veux (pas le cnaal alpha)... c beaucoup plus simple.
 
Je veux juste une couleur transparente. En fait je construit mon image (png) et dedans je mets une couleur (genre RGB(255,0,0)) et lorsque je fais un blit , il n'affiche pas les pixels de cette couleur... en gros c plutot un mask.
 
En tout cas merci , je vais deja voir avec XRender.

Reply

Marsh Posté le 19-12-2002 à 21:28:29    

Kristoph a écrit :

Si il y a avec l'extension XRender :)


 
Jamais réussi à le faire marcher chez moi lui. Vivement la 4.3


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 26-12-2002 à 17:11:11    

up

Reply

Marsh Posté le 26-12-2002 à 19:07:14    

C'est pour faire quoi en fait?


---------------
Boulay officiel : asphro
Reply

Marsh Posté le 26-12-2002 à 19:07:14   

Reply

Marsh Posté le 26-12-2002 à 22:09:47    

En fait c pour afficher des images non carrés... une couleur sert de couleur de masque pour ne pas etre affiché.
 
ex connu : les icones sur le bureau sous windows... on peut avoir une couleur dite de transparence (qui signifie en fait non affiché)
 
Je voudrais pourvoir faire la meme chose avec XLib (uniquement) sous windows
 
Je pourrais faire ca a la main moi meme en utilisant XPutpixel plutot que XPutimage mais c pas optimisé et ca risquerait de ramer.

Reply

Marsh Posté le 01-04-2003 à 16:31:08    

Up ... personne pour m aider j ai du mal a voir comment faire.
 
Apparemment je dois voir au niveau des pixmap ou du clipping mask mais je ne comprends pas comment ca marche

Reply

Marsh Posté le 01-04-2003 à 17:09:36    

va voir là : http://www.motifzone.com/tmd/artic [...] games.html
il y a qqn qui y explique comment faire ce que tu veux.
 
Ca m'a l'air assez clair, mais sinon n'hésite pas à poser des questions...

Reply

Marsh Posté le 01-04-2003 à 17:16:42    

Oups, ça dit théoriquement comment faire, mais il n'y a pas les commandes xlib... va falloir que tu regardes dans le code !
J'ai la flemme de chercher... :whistle:
Tu nous dis si tu trouves ?

Reply

Marsh Posté le 03-04-2003 à 09:02:23    

Sinon tu peux utiliser la lib XPM pour charger tes images. Elle te permet de gerer facilement la transparence (grace a une couleur "transparente" ).
 
J'ai un bout de code si tu es interesse.


---------------
Teuf Corp. - Just Mix'It.
Reply

Marsh Posté le 03-04-2003 à 11:49:50    

le probleme c que je travaille sur un embedded PC104 et que la place est limitée , je suis donc obligé d utiliser des images compressées car j'ai une dizaine d image en 800x600 16bits .
 
Le XPM a tendance a etre tres gros et ca ne me va pas :(
 
 
merci quand meme :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed