PhotoFiltre
http://www.photofiltre-studio.com/forum/

pb plugin fondu horizontal 4 et 5 images
http://www.photofiltre-studio.com/forum/viewtopic.php?f=3&t=20938
Page 1 of 1

Author:  gilles54 [ 26 Jul 2014 15:26 ]
Post subject:  pb plugin fondu horizontal 4 et 5 images

Bonjour,

Je débute dans Phofiltre X et j'ai besoin de faire un fondu horizontal de 4 images qui ont toutes la même dimension 1024x768.

J'utilise le plugin trouvé sur jptom.free.fr (merci encore !) qui est le suivant :

F:64; //Taille de la zone commune
H:Max(H(I1),H(I2),H(I3),H(I4)); //Hauteur maximale des 4 images
S1:BStretch(I1,W(I1)*H/H(I1),H); //Adaptation hauteur Image 1
S2:BStretch(I2,W(I2)*H/H(I2),H); //Adaptation hauteur Image 2
S3:BStretch(I3,W(I3)*H/H(I3),H); //Adaptation hauteur Image 3
S4:BStretch(I4,W(I4)*H/H(I4),H); //Adaptation hauteur Image 4
W:W(S1)+W(S2)+W(S3)+W(S4)-F*3; //Taille de l'image totale
T1:Tile(S1,W,H); //Augmentation zone de travail Image 1
T2:Scroll(Tile(S2,W,H),W(S1)-F,0); //Augmentation zone de travail Image 2 et positionnement au bon endroit
T3:Scroll(Tile(S3,W,H),W(S1)+W(S2)-F*2,0); //Augmentation zone de travail Image 3 et pos. au bon endroit
T4:Scroll(Tile(S4,W,H),W(S1)+W(S2)+W(S3)-F*3,0); //Augmentation zone de travail Image 4 et pos. au bon endroit
X:X(T1); //Initialisation Dégradé
If(X<W(S1)-F,T1, //Image 1
If((X>W(S1))and(X<W(S1)+W(S2)-F*2),T2, //Image 2
If((X>W(S1)+W(S2)-F)and(X<W(S1)+W(S2)+W(S3)-F*3),T3, //Image 3
If(X>W(S1)+W(S2)+W(S3)-F*2,T4, //Image 4
If((X>=W(S1)-F)and(X<=W(S1)),AlphaBlend(T1,T2,X-W(S1)+F,F), //1er Fondu
If((X>=W(S1)+W(S2)-F*2)and(X<=W(S1)+w(S2)-F),AlphaBlend(T2,T3,X-W(S1)-W(S2)+F*2,F), //2ème Fondu
AlphaBlend(T3,T4,X-W(S1)-W(S2)-W(S3)+F*3,F))))))) //3ème Fondu

Par contre, je n'arrive pas à forcer pour que mon image finale soit en 2000 x 300 (obligatoire). Comment faire ?

Merci d'avance.

[Tom] Je modifie le titre pour mieux indexer le sujet [/Tom]

Author:  Tom [ 26 Jul 2014 16:28 ]
Post subject:  Re: pb plugin fondu horizontal 4 images

Bonjour, et merci de t'intéresser à ce script,

Le problème que tu rencontres va nécessiter de faire des choix : (c'est un problème de rapport Hauteur/Largeur et de cadrage.)

- Soit tu traites tes 4 images de 1024 avec le plugin ce qui sera lourd en calcul et te donnera (4 x 1024) - (3 X 64) = 3904 pixels
Clic droit / Taille de l'image en conservant les proportions : 2000 pixels de large et 393 pixels en hauteur,
En sélectionnant toute l'image, clic droit dans la sélection, décocher "conserver les proportions" et porter la hauteur à 300 pixels.
Déplacer la sélection à la hauteur voulue et clic droit / Recadrer l'image.

- Soit tu veux garder toute la hauteur et réduire la taille à 300 pixels de haut, tes images feront alors 400 pixels de large et fois 4,
ça ne fait pas le compte des 2000.

- Soit tu anticipes sur la taille finale et tu déduis la largeur nécessaire de tes images (2000 + (3 x 64)) / 4 = 548 pixels par image,
et là il faudra recadrer la hauteur de tes images de 411 à 300 pixels. Et si tu conserves la zone commune (recouvrement fondu) de 64 pixels,
la fusion des 4 images 548 x 300 doit aboutir à une image de 2000 x 300.

Author:  gilles54 [ 28 Jul 2014 8:57 ]
Post subject:  Re: pb plugin fondu horizontal 4 images

Bonjour,

J'avance....

Voici mon script

F:32;
H:300;
S1:BStretch(I1,W(I1)*H/H(I1),H);
S2:BStretch(I2,W(I2)*H/H(I2),H);
S3:BStretch(I3,W(I3)*H/H(I3),H);
S4:BStretch(I4,W(I4)*H/H(I4),H);
S5:BStretch(I5,W(I5)*H/H(I5),H);
W:2000;
T1:Tile(S1,W,H);
T2:Scroll(Tile(S2,W,H),W(S1)-F,0);
T3:Scroll(Tile(S3,W,H),W(S1)+W(S2)-F*2,0);
T4:Scroll(Tile(S4,W,H),W(S1)+W(S2)+W(S3)-F*3,0);
T5:Scroll(Tile(S5,W,H),W(S1)+W(S2)+W(S3)+W(S4)-F*4,0);
X:X(T1);
If(X<W(S1)-F,T1,
If((X>W(S1))and(X<W(S1)+W(S2)-F*2),T2,
If((X>W(S1)+W(S2)-F)and(X<W(S1)+W(S2)+W(S3)-F*3),T3,
If((X>W(S1)+W(S2)+W(S3)-F*2)and(X<W(S1)+W(S2)+W(S3)+W(S4)-F*4),T4,
If(X>W(S1)+W(S2)+W(S3)+W(S4)-F*4,T5,
If((X>=W(S1)-F)and(X<=W(S1)),AlphaBlend(T1,T2,X-W(S1)+F,F),
If((X>=W(S1)+W(S2)-F*2)and(X<=W(S1)+w(S2)-F),AlphaBlend(T2,T3,X-W(S1)-W(S2)+F*2,F),
If((X>=W(S1)+W(S2)+W(S3)-F*3)and(X<=W(S1)+w(S2)+W(S3)-F*2),AlphaBlend(T3,T4,X-W(S1)-W(S2)-W(S3)+F*3,F),
AlphaBlend(T4,T5,X-W(S1)-W(S2)-W(S3)-W(S4)+F*4,F)))))))))

J'ai 2 problèmes :

- Le 4 ème fondu (oui je suis passé à 5 images) ne se fait pas !
- comment faire pour que le bout de la 5ème image en double n'apparaisse pas ?

Merci.

Author:  Tom [ 28 Jul 2014 12:27 ]
Post subject:  Re: pb plugin fondu horizontal 4 images

Ah pas mal essayé, mais ta méthode va rencontrer plusieurs problèmes. :)

Pour un fondu horizontal de 5 images qui s'adapte à toutes les tailles sans déformation,
voilà ce que j'avais imaginé :
Attention erreur dans ce script. Voir le suivant, rectifié, un peu plus bas
Code:
//Assemblage Fondu horizontal de 5 images. Adaptation : jptom.free.fr
F:64; //Taille de la zone commune
H:Max(H(I1),H(I2),H(I3),H(I4),H(I5)); //Hauteur maximale des 5 images
S1:BStretch(I1,W(I1)*H/H(I1),H); //Adaptation hauteur Image 1
S2:BStretch(I2,W(I2)*H/H(I2),H); //Adaptation hauteur Image 2
S3:BStretch(I3,W(I3)*H/H(I3),H); //Adaptation hauteur Image 3
S4:BStretch(I4,W(I4)*H/H(I4),H); //Adaptation hauteur Image 4
S5:BStretch(I5,W(I5)*H/H(I5),H); //Adaptation hauteur Image 5
W:W(S1)+W(S2)+W(S3)+W(S4)+W(S5)-F*4; //Taille de l'image totale
T1:Tile(S1,W,H); //Augmentation zone de travail Image 1
T2:Scroll(Tile(S2,W,H),W(S1)-F,0); //Augmentation zone de travail Image 2 et positionnement au bon endroit
T3:Scroll(Tile(S3,W,H),W(S1)+W(S2)-F*2,0); //Augmentation zone de travail Image 3 et pos. au bon endroit
T4:Scroll(Tile(S4,W,H),W(S1)+W(S2)+W(S3)-F*3,0); //Augmentation zone de travail Image 4 et pos. au bon endroit
T5:Scroll(Tile(S5,W,H),W(S1)+W(S2)+W(S3)+W(S4)-F*4,0); //Augmentation zone de travail Image 4 et pos. au bon endroit
X:X(T1); //Initialisation Dégradé
If(X<W(S1)-F,T1, //Image 1
If((X>W(S1))and(X<W(S1)+W(S2)-F*2),T2, //Image 2
If((X>W(S1)+W(S2)-F)and(X<W(S1)+W(S2)+W(S3)-F*3),T3, //Image 3
If((X>W(S1)+W(S2)+W(S3)-F)and(X<W(S1)+W(S2)+W(S3)+W(S4)-F*4),T4, //Image 4
If(X>W(S1)+W(S2)+W(S3)+w(S4)-F*3,T5, //Image 5
If((X>=W(S1)-F)and(X<=W(S1)),AlphaBlend(T1,T2,X-W(S1)+F,F), //1er Fondu
If((X>=W(S1)+W(S2)-F*2)and(X<=W(S1)+w(S2)-F),AlphaBlend(T2,T3,X-W(S1)-W(S2)+F*2,F), //2ème Fondu
If((X>=W(S1)+W(S2)+W(S3)-F*3)and(X<=W(S1)+w(S2)+W(S3)-F*2),AlphaBlend(T3,T4,X-W(S1)-W(S2)-W(S3)+F*3,F), //3ème Fondu
AlphaBlend(T4,T5,X-W(S1)-W(S2)-W(S3)-W(S4)+F*4,F))))))))) //4ème Fondu

Tu as fait une petite erreur dans la ligne d'affichage de l'image T5 : cette expression comporte une référence à 4 largeurs d'images
et non 5, donc il ne faut compter que 3 intervalles F.

Le principal inconvénient de cette méthode est :
  • soit de tronquer la dernière image pour que la largeur totale de l'ensemble tienne en 2000 pixels, si tes images sont au format 3/2. Mais pourquoi pas ?
  • par contre avec des images au format 5/4 comme les tiennes, il va bégayer ce qui lui manque pour faire 2000 pixels. Pourquoi ?
- réduire sans déformation tes images à 300 pixels de haut, revient à réduire la largeur à 400 pixels (démonstration plus haut)
- donc 5 x 400 = 2000 pixels, mais tu réduis la largeur en opérant 4 fondus de 32 pixels, il manque 128 pixels pour faire le compte
donc le plugin répète 128 pixels à droite pour compléter à 2000.

Author:  gilles54 [ 28 Jul 2014 14:00 ]
Post subject:  Re: pb plugin fondu horizontal 4 images

Bonjour et merci pour la réponse.

J'ai recopié ton script mais le 3ème fondu se fait mal (entre l'image 3 et 4) et il n'y en a pas entre la 4 et la 5.

Author:  Tom [ 28 Jul 2014 15:27 ]
Post subject:  Re: pb plugin fondu horizontal 4 images

Bien observé pour le 3ème fondu !!! :)
Petit manque de rigueur dans la logique pour le positionnement de l'image 4,
erreur que tu n'avais pas commise dans ton script d'ailleurs. :clap:

Rectifié dans le script suivant :

Code:
//Assemblage Fondu horizontal de 5 images. Adaptation : jptom.free.fr
F:64; //Taille de la zone commune
H:Max(H(I1),H(I2),H(I3),H(I4),H(I5)); //Hauteur maximale des 5 images
S1:BStretch(I1,W(I1)*H/H(I1),H); //Adaptation hauteur Image 1
S2:BStretch(I2,W(I2)*H/H(I2),H); //Adaptation hauteur Image 2
S3:BStretch(I3,W(I3)*H/H(I3),H); //Adaptation hauteur Image 3
S4:BStretch(I4,W(I4)*H/H(I4),H); //Adaptation hauteur Image 4
S5:BStretch(I5,W(I5)*H/H(I5),H); //Adaptation hauteur Image 5
W:W(S1)+W(S2)+W(S3)+W(S4)+W(S5)-F*4; //Taille de l'image totale
T1:Tile(S1,W,H); //Augmentation zone de travail Image 1
T2:Scroll(Tile(S2,W,H),W(S1)-F,0); //Augmentation zone de travail Image 2 et positionnement au bon endroit
T3:Scroll(Tile(S3,W,H),W(S1)+W(S2)-F*2,0); //Augmentation zone de travail Image 3 et pos. au bon endroit
T4:Scroll(Tile(S4,W,H),W(S1)+W(S2)+W(S3)-F*3,0); //Augmentation zone de travail Image 4 et pos. au bon endroit
T5:Scroll(Tile(S5,W,H),W(S1)+W(S2)+W(S3)+W(S4)-F*4,0); //Augmentation zone de travail Image 5 et pos. au bon endroit
X:X(T1); //Initialisation Dégradé
If(X<W(S1)-F,T1, //Image 1
If((X>W(S1))and(X<W(S1)+W(S2)-F*2),T2, //Image 2
If((X>W(S1)+W(S2)-F)and(X<W(S1)+W(S2)+W(S3)-F*3),T3, //Image 3
If((X>W(S1)+W(S2)+W(S3)-F*2)and(X<W(S1)+W(S2)+W(S3)+W(S4)-F*4),T4, //Image 4
If(X>W(S1)+W(S2)+W(S3)+W(S4)-F*3,T5, //Image 5
If((X>=W(S1)-F)and(X<=W(S1)),AlphaBlend(T1,T2,X-W(S1)+F,F), //1er Fondu
If((X>=W(S1)+W(S2)-F*2)and(X<=W(S1)+W(S2)-F),AlphaBlend(T2,T3,X-W(S1)-W(S2)+F*2,F), //2ème Fondu
If((X>=W(S1)+W(S2)+W(S3)-F*3)and(X<=W(S1)+W(S2)+W(S3)-F*2),AlphaBlend(T3,T4,X-W(S1)-W(S2)-W(S3)+F*3,F), //3ème Fondu
AlphaBlend(T4,T5,X-W(S1)-W(S2)-W(S3)-W(S4)+F*4,F))))))))) //4ème Fondu

Par contre, je n'ai pas vu d'anomalie pour le quatrième fondu ??? mais un train peut toujours en cacher un autre. ;)

Author:  gilles54 [ 28 Jul 2014 19:05 ]
Post subject:  Re: pb plugin fondu horizontal 4 et 5 images

Merci beaucoup ! c'est nickel. Superbe outil

Author:  Tom [ 29 Jul 2014 11:15 ]
Post subject:  Re: pb plugin fondu horizontal 4 et 5 images

Bonjour Gilles,

j'ai encore réfléchi à ton projet pour obtenir le moins mauvais cadrage, (puisqu'il faut recadrer les hauteurs) :
- il faut partir des contraintes : 2000 pixels de large au final
- utiliser une valeur de recouvrement fondu dont le total est divisible par 5 (le nombre d'images à assembler) : 30 pixels par exemple
- ce qui fait un total de 4 fondus x 30, soit 120 pixels, donc (2 000 + 120 )/ 5 = 424 pixels de large par image pour 300 pixels de haut avant traitement par le plugin.

Ajustement des images de départ ( 1024 X 768 ) :
- Clic droit dans l'image / Taille de l'image : Unités pixels, remplacer 1024 par 424, ce qui fait une hauteur de 318 pixels
- Ctrl + A, sélection de toute l'image / clic droit dans la sélection / Paramétrage manuel : Décocher "Conserver les proportions", remplacer 318 par 300
- menu Sélection / Copier la forme (pour la réutiliser sur les autres images réduites en largeur)
- Il suffit de positionner la sélection à la hauteur voulue (avec les flèches du clavier) pour rogner les 18 pixels excédentaires,
- puis clic droit dans la sélection / Recadrer l'image.
- réduire les 4 autres images à 424 de large et Alt + S + M (Sélection / Coller la forme), positionner et recadrer.

Ne pas oublier de modifier la valeur de la zone commune de fondu du script. ;)

Page 1 of 1 All times are UTC + 1 hour [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/