JL35
Nombre de messages : 7095 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Sub fondu d'images Ven 16 Mai 2014 - 16:53 | |
| Pour remplacer progressivement une image par une autre (par exemple dans une visionneuse d'image, n'est-ce pas bignono ?) - Code:
-
DIM f2$,sens%,v% f2$ = "Z:\caillebo.jpg" f2$="c:\graph\jpg\goldgate.jpg"
WIDTH 0,660: HEIGHT 0,520 PICTURE 10: LEFT 10,0: WIDTH 10,640: HEIGHT 10,480 FILE_LOAD 10,"Z:\cailjard.jpg" sens% = 0 v% = 10 Fondu(10,f2$,sens%,v%) END ' ====================================================================== SUB Fondu(p%,f2$,sens%,v%) ' Recopie progressive de l'image f2$ dans l'image contenue dans le picture p% ' sens%=0: haut->bas, =1: bas->haut, =2 gauche->droite, =3 droite->gauche ' v% = vitesse de recouvrement (1 à n) DIM_LOCAL x%,y%,w%,h%,p2%,i2%,r%,g%,b%,t% w% = WIDTH(p%): h%=HEIGHT(p%) p2%=5000: WHILE OBJECT_EXISTS(p2%)=1: p2%=p2%+1: END_WHILE PICTURE p2%: LEFT p2%,-4000: TOP p2%,0: WIDTH p2%,w%: HEIGHT p2%,h% i2%=p2%+1: WHILE OBJECT_EXISTS(i2%)=1: i2%=i2%+1: END_WHILE IMAGE i2% FILE_LOAD p2%,f2$ t% = NUMBER_2D_TARGET SELECT sens% CASE 0 FOR y% = 0 TO h%-1 step v% 2D_TARGET_IS p2%: 2D_IMAGE_COPY i2%,0,y%,w%-1,y%+v% 2D_TARGET_IS p%: 2D_IMAGE_PASTE i2%,0,y% wait 1 NEXT y% CASE 1 FOR y% = h%-1 TO -1*v% STEP -1*v% 2D_TARGET_IS p2%: 2D_IMAGE_COPY i2%,0,y%,w%-1,y%+v% 2D_TARGET_IS p%: 2D_IMAGE_PASTE i2%,0,y% wait 1 NEXT y% CASE 2 FOR x% = 0 to w%-1 step v% 2D_TARGET_IS p2%: 2D_IMAGE_COPY i2%,x%,0,x%+v%,h%-1 2D_TARGET_IS p%: 2D_IMAGE_PASTE i2%,x%,0 wait 1 NEXT x% CASE 3 FOR x% = w%-1 TO -1*v% STEP -1*v% 2D_TARGET_IS p2%: 2D_IMAGE_COPY i2%,x%,0,x%+v%,h%-1 2D_TARGET_IS p%: 2D_IMAGE_PASTE i2%,x%,0 wait 1 NEXT x% END_SELECT DELETE i2%: 2D_TARGET_IS t%: DELETE p2% END_SUB Les quelques lignes au-dessus ne sont là que pour l'exemple, et le programme est perfectible, notamment pour l'adaptation aux proportions des images, et des stretch_on appropriés. Il faut que les images soient au même format, sinon ça complique un peu, mais ça doit être faisable. Le wait 1 est là pour éviter un clignotement désagréable. PS: déjà une petite modif: j'ai ajouté un paramètre vitesse de recouvrement (qui correspond en fait au nombre de lignes traitées à chaque boucle). | |
|
jjn4
Nombre de messages : 2691 Date d'inscription : 13/09/2009
| |
JL35
Nombre de messages : 7095 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Sub fondu d'images Ven 16 Mai 2014 - 17:22 | |
| C'est vrai qu'il vaut mieux augmenter la vitesse pour réduire les scintillements désagréables... mais ils sont toujours là !
En fait il faut jongler entre la vitesse et le wait, par exemple si je mets v% = 5 et wait 40 ça ne scintille plus chez moi, mais ça dépend forcément de la bécane, du windows, etc. | |
|
papydall
Nombre de messages : 6998 Age : 73 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Sub fondu d'images Ven 16 Mai 2014 - 18:04 | |
| Avec une vitesse v% = 50, un wait 50 et un sens% = rnd(4), les choses s’améliorent parait-il. - Le Martien qui se fait rare a écrit:
- Pas mal, mais c'est un peu trop tremblottant tremblotant,
(enfin tout au moins sur XP). Sur Mars, on ne vous a pas prévenu que XP ça appartient à la …. Tremblotante préhistoire Heu ! j’ai oublié de remercier JL35. JL Trente cinq MERCIII | |
|
JL35
Nombre de messages : 7095 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Sub fondu d'images Ven 16 Mai 2014 - 18:11 | |
| Oui papydall, pas mal le coup du rnd(4) si on fait défiler plusieurs images !
Pour moi, avec v% = 10 et wait 40 ça ne scintille déjà plus et c'est moins rapide. | |
|
bignono
Nombre de messages : 1127 Age : 66 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: Sub fondu d'images Sam 17 Mai 2014 - 9:59 | |
| Merci JL35 Programme intéressant, je garde assurément. A+ | |
|
Contenu sponsorisé
| Sujet: Re: Sub fondu d'images | |
| |
|