[Algo] Faire un fondu entre 2 images...

Faire un fondu entre 2 images... [Algo] - Programmation

Marsh Posté le 12-08-2002 à 21:27:20    

Je voudrais faire un fondu entre deux images. Seulement, je ne sais pas trop comment faire...
Pour l'instant mon idée, c'est pour chaque pixel calculer la différence de valeurs X,Y,Z entre chaque composante R,G,B de mes deux images, et d'ensuite incrementer(ou decrementer) de X/step, Y/step, Z/step (avec step le nombre d'étapes) a chaque itération.
Seulement, je trouve que c'est beaucoup de calculs.... et traiter chaque pixel un à un risque d'etre lent. (surtout si je le fais en VB...)
Il y a surement un meilleur moyen pour faire ca nan ?
Si quelqu'un a une autre idée, ou sait où trouver ca, merci :)


Message édité par spark le 12-08-2002 à 21:28:45
Reply

Marsh Posté le 12-08-2002 à 21:27:20   

Reply

Marsh Posté le 12-08-2002 à 23:01:27    

Quel joli bide....
 
J'ai juste ou bien j'ai tout faux ?

Reply

Marsh Posté le 12-08-2002 à 23:29:46    

pour fader entre deux pixels A et B, donnant une couleur X :
 
X = A + (B-A)*t
 
où t varie entre 0 et 1. il faut faire ça pour chaque composante R G B.
 
>> si je le fais en VB
 
tu peux tout de suite oublier. le mieux est (je pense) d'utiliser les DXImageTransform de microsoft (voir msdn) qui te permettent de faire pas mal de traitement d'images (blur, drop shadow, alpha, etc.)

Reply

Marsh Posté le 12-08-2002 à 23:29:53    

Allez, pour faire remonter ce post qui est tout de même intéressant.
 
Mais bon, comme ca, je ne vois pas d'autre solution que celle que tu as donné. Ca t'oblige a calculer un step pour chaque pixel de l'image et a stocker tout ca! Essaie, on verra.
 
Sinon, je pensais au filtre de flou (c un de ceux que je sais faire:)). Tu pourrais pas flouter la première image avec un filtre de + en + fort puis additionner au fur et a mesure la 2eme image floutée de - en - fort ?

Reply

Marsh Posté le 12-08-2002 à 23:47:33    

Merci youdontcare, j'me suis peut etre pas expliqué clairement, mais ce que j'ai expliqué se résume a ta formule.
Sinon, j'v aller faire un tour du coté de directx.
 
En fait, j'voudrais faire un splash screen qui s'affiche en fondu sur le bureau. Un peu comme 3dmark quand on le lance.
 
Donc j'ai que 3 solutions, soit j'le fais à la main (ca va ramer sa mère), soit j'le fais dans une DLL en C (ca va moins ramer mais ramer quand meme je pense), soit utiliser directx.
 
Mais bon, c'est peut etre se faire bcp chier pour juste un splash screen :-)
 
Sinon, je peux toujours utiliser la transparence des fenetres de windows, mais ca marchera que sous 2000/XP et pas sous w9x/me.

Reply

Marsh Posté le 12-08-2002 à 23:58:17    

tu fais donc partie de ceux qui préfèrent passer du temps à jolifier leur application plutôt que de la rendre plus utile ?  
 
tu n'as pas remarqué que beaucoup de gens n'en ont rien à foutre du fade d'un splash screen ? que beaucoup de gens n'en ont rien à foutre d'un splash screen non plus ? à part les grosses applics, pas mal de logiciels utilisent un splash, l'applic se lance qq petites secondes après, MAIS le splash reste actif pendant qq secondes ... on atteint le summum de l'inutile.
 
passe plutôt ton temps à améliorer ton applic que sur un splash inutile.

Reply

Marsh Posté le 13-08-2002 à 00:06:51    

Rohhhh, effectivement le but est très limité, mais je trouve que ca fait joli...  
Mais bon, j'v pas passer 15 ans dessus non plus hein.

Reply

Marsh Posté le 13-08-2002 à 00:08:27    

spark a écrit a écrit :

je trouve que ca fait joli...  



...  
 
c'est joli la première fois, sympa la seconde, énervant à souhait toutes les suivantes ...
 
si tu es vraiment si frustré avec tes désirs visuels :D, apprends plutôt à dessiner, fais du flash, de la 3d ...

Reply

Marsh Posté le 13-08-2002 à 00:10:12    

lol
yeahhhhhh, j'v faire une splash screen 3d qui se balade partout en flash !!!! :D :D
 
merci pour l'idée :D

Reply

Marsh Posté le 13-08-2002 à 00:11:43    

:lol:

Reply

Sujets relatifs:

Leave a Replay

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