Module Arithmetique Copyright (c) 2003-2004 Benjamin FOURNIER Version 2.2.3 multi-langues avec ic�ne Langue originale : Anglais Langues compl�mentaires : Fran�ais Pour tout renseignement concernant ce plugin: pluginsphotofiltre@yahoo.fr Traduction ========== Si vous d�sirez traduire ce plugin dans une autre langue envoyez moi un e-mail � pluginsphotofiltre@yahoo.fr If you want to translate this plugin in another language please send me an e-mail to pluginsphotofiltre@yahoo.fr Licence ======= La licence de PhotoFiltre est applicable pour ce plugin (� l'exception du fait qu'il n'y a pas d'enregistrement sp�cifique pour ce plugin) Description =========== Module externe (plugin) pour PhotoFiltre Copyright (c) 2001-2003 Antonio DA CRUZ Site Web : http://www.photofiltre.com Permet d'effectuer de l'arithm�tique entre plusieurs images et/ou des couleurs Installation ============ D�compressez le fichier 'Arithmetique.pfl' dans le dossier 'Plugins' de PhotoFiltre. Red�marrez ensuite PhotoFiltre pour charger le module. Utilisation =========== Ce module est un module de type Outil il appara�t dans le menu Outils/Autre sous le nom Arithm�tique... Ce module n'est disponible que si il y a au moins une image ouverte. Il suffit d'�crire l'expression d�sir�e (par exemple (I1+I2)/2) en utilisant les op�rateurs, les fonctions, les couleurs et les images. Pour ins�r�r une image il suffit de double cliquer sur celle ci dans l'explorateur d'image situ� en bas de la fen�tre. Une fois l'expression �crite il est possible de cliquer sur Apercu pour voir le r�sultat. Une fois que l'on est satisfait du r�sultat, il suffit de cliquer sur OK pour g�n�rer la nouvelle image r�sultat. Probl�me avec la syntaxe color�e ================================ Si vous rencontrez des probl�mes avec le plugin arithm�tique il y a de forte chance que cela soit du au contr�le permettant d'obtenir la syntaxe color�e. Il est possible de le d�sactiver en ajoutant la ligne suivante dans la section [Plugin Arithmetique] du fichier PhotoFiltre.ini : [Plugin Arithmetique] PasDeSyntaxe=1 Ecriture des expressions ======================== Toutes les op�rations peuvent �tre �crites en utilisant les boutons ou en tapant int�gralement au clavier. Une expression se compose : --------------------------- - d'images : elles sont indiqu�es dans l'expression sous la forme I<n> avec n compris entre 1 et le nombre d'images ouvertes. Le num�ro correspond � celui indiqu� dans l'explorateur d'images. Une image est ins�r�e en double cliquant dans l'explorateur d'image. - de couleurs : elles sont indiqu�es dans l'expression sous la forme #RRVVBB en hexa d�cimal (�quivalent au code HTML d'une couleur). Une couleur peut �tre ins�r�e en cliquant sur le bouton color�. - de nombre entiers : ils sont obligatoirement tap�s au clavier et doivent �tre compris en -2147483647 et +2147483647 (pr�cision 32 bits sign�) - des 4 op�rateurs usuels : + - * / Comme dans une expression arithm�tique classique, la multiplication et la division sont prioritaires sur l'addition et la soustraction. La division par 0 n'est pas consid�r�e comme une erreur mais les bornes infinies sont utilis�es de la mani�re suivante : si n > 0 : n / 0 vaut +2147483647 si n < 0 : n / 0 vaut -2147483647 si n = 0 : n / 0 vaut 0 - de l'op�rateur exposant : ^ qui permet d'obtenir le carr�, le cube etc. - du modulo : mod qui permet d'obtenir le reste de la division enti�re - des 6 op�rateurs de tests : = <> < > <= >= Ils sont surtout utiles avec la fonction If mais peuvent �tre utilis�s tels quel. Les op�rateurs renvoient 255 (blanc) lorsque la condition est vraie et 0 (noir) sinon. - des fonctions logiques ou binaires : and or xor not Ils sont surtout utiles avec la fonction If mais peuvent �tre utilis�s tels quel. - de parenth�ses : comme dans une expression arithm�tique classique elles permettent de forcer la priorit� des op�rateurs. - de commentaires mono ligne avec // - autres fonctions : Max(x1,..,xn) : Prend le maximum des argument pour chacune des composante RVB Par exemple : ------------- Max(#FF0000,#00FF00,#0000FF) donne #FFFFFF Min(x1,...,yn) : Prend le minimum des argument pour chacune des composante RVB Par exemple : ------------- Min(#00FFFF,#FF00FF,#FFFF00) donne #000000 MaxLum(x1,...,yn) : Prend la couleur la plus lumineuse Par exemple : ------------- MaxLum(#FF0000,#80FF00) donne #80FF00 MinLum(x1,...,yn) : Prend la couleur la moins lumineuse Par exemple : ------------- MinLum(#FF0000,#80FF00) donne #FF0000 Avg(x1,...,yn) <=> (x1+...+yn)/n AvgRGB(x) : Renvoie la moyenne des 3 composantes RVB cela permet de transformer une image couleur en niveaux de gris Lum(x) : Renvoie la luminance des 3 composantes RVB avec la formule 0.299R + 0.587G + 0.114B RGB2HSL(x) : Converti une couleur RGB en son �quivalent HSL HSL2RGB(x) : Converti une couleur HSL en son �quivalent RGB RGB2YUV(x): Converti une couleur RGB en son �quivalent YUV YUV2RGB(x): Converti une couleur YUV en son �quivalent RGB R(x): Renvoi la composante rouge G(x): Renvoi la composante verte B(x): Renvoi la composante bleue Abs(x): Renvoi la valeur absolue utile pour comparer des images Root(x[,n]): Renvoi la racine n i�me de x. Si n n'est pas pr�cis� il s'agit de la racine carr�e. If(<condition>,<vrai>,<faux>) : Cette fonction permet de faire des tests conditionnels sur les points des images. Par exemple : ------------- If(I1>I2,#FF0000,#00FF00) donne une image rouge et verte o� les points rouges repr�sentent les points de I1 qui sont plus lumineux que ceux de I2 et o� les points verts repr�sentents les points de I1 qui sont moins lumineux (ou aussi lumineux) que ceux de I2. X(x): Renvoi les coordonn�e en X de l'image cela permet de faire des d�grad�s horizontaux Y(x): Renvoi les coordonn�e en Y de l'image cela permet de faire des d�grad�s verticaux W(x): Renvoi la taille horizontale de l'image (utile pour inverser un d�grad� horizontal) H(x): Renvoi la taille verticale de l'image (utile pour inverser un d�grad� vertical) Stretch(x, y): Redimensionne l'image x � la taille de l'image y BStretch(x, y): Identique � Stretch mais avec filtrage bilin�aire. Tile(x, y): Redimensionne l'image x � la taille de l'image y en recopiant l'image autant de fois que n�cessaire pour atteindre cette taille. Scroll(x, dx, dy): Permet de d�caler l'image d'un certains nombre de pixels... Ce qui disparait d'un cot� r�apparait de l'autre dx indique le d�calage horizontal (n�gatif = � gauche, positif = � droite) dy indique le d�calage vertical (n�gatif = en haut, positif = en bas) A noter que le d�calage n'est pas obligatoirement le m�me pour tous les points ou les composantes de l'images. Par exemple : ------------- Scroll(I1,W(I1)/2,H(I1)/2): D�cale l'image de fa�on � inverser les 4 coins Scroll(I1,Y(I1),0): D�calage progressif des ligne (la premiere n'est pas d�cal�e, la derni�re de la hauteur de l'image - 1) Scroll(I1,-X(I1),-Y(I1)): Division de la taille de l'image par 2 et extension de type motif AlphaBlend(x, y, masque, max): AlphaBlending entre l'image x et l'image y en utilisant le masque et en pr�cisant le maximum afin d'inverser le masque. Par exemple : ------------- AlphaBlend(I1,I2,X(I1),W(I1)) Permet de r�aliser un fondu artistique entre l'image I1 et l'image I2 - de variables : Les variables permettent de d�composer une expression complexe en plusieurs parties. Cela permet �galement d'�viter d'effectuer une m�me op�ration plusieurs fois ce qui permet �galement d'acc�l�rer les temps de traitements. Une variable est un identificateur commencant obligatoirement par une lettre ou le caract�re '_'. Les chiffres peuvent �tre utilis�s � partir du deuxi�me caract�res. D�claration d'une variable : ---------------------------- <Nom de la variable>:<Expression>; Utilisation d'une variable : ---------------------------- <Nom de la variable> Permutation des images ====================== Le drag & drop est disponible sur la liste d'image ce qui permet de r�ordonner les images (ce qui peut �tre plus pratique que de changer les In dans l'expression) Le drag & drop utilise le bouton droit de la souris. Informations diverses ===================== Toutes les op�rations sur les images sont r�alis�es avec des entiers 32 bits pour chacune des composantes RVB. Les op�rations sont appliqu�es individuellement sur chacune des 3 composantes. Un nombre entier est consid�r� comme une couleur o� toutes les composantes sont identiques (niveau de gris). Par exemple le nombre entier 10 est �quivalent � la couleur #0A0A0A. Lorsque une op�ration porte sur 2 images de tailles diff�rentes les images sont redimensionn�es vers la plus grande taille possible au fur et � mesure de l'�valuation de l'expression. Lorsque une erreur est d�tect�e dans l'expression un message d'erreur explicite indique la partie de l'expression qui est mal plac�e (ou token inattendu) ainsi que la liste des possibilit�s (ou token possibles) � cet endroit de l'expression. Le curseur est plac� apr�s la partie de l'expression erron�e. Les espaces, les tabulations et les sauts de lignes peuvent �tre utilis�s pour s�parer les �l�ments de l'expression (Exemple: I1 + I2) Exemples d'expressions ====================== On suppose que 3 images sont ouvertes : - Moyenne des 2 premi�res images : (I1+I2)/2 ou Avg(I1,I2) - Extraire une composante de la premi�re image : * Rouge : I1*#010000 ou bien I1 and #FF0000 * Vert : I1*#000100 ou bien I1 and #00FF00 * Bleu : I1*#000001 ou bien I1 and #0000FF - S...
wojslaw