Software: Apache/2.2.3 (CentOS). PHP/5.1.6 uname -a: Linux mx-ll-110-164-51-230.static.3bb.co.th 2.6.18-194.el5PAE #1 SMP Fri Apr 2 15:37:44 uid=48(apache) gid=48(apache) groups=48(apache) Safe-mode: OFF (not secure) /usr/share/gimp/2.0/help/fr/ drwxr-xr-x |
Viewing file: ch07s03s05.html (15.21 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) | Poursuivons notre entraînement et ajoutons quelques fonctionnalités à notre script. Dans la leçon précédente, nous avons créé une fonction vide et nous l'avons enregistrée dans Gimp. Dans la présente leçon, nous voulons donner quelque fonctionnalité à notre script: créer une nouvelle image, lui ajouter le texte de l'utilisateur et redimensionner l'image pour qu'elle s'adapte exactement au texte. Une fois que vous savez fixer les variables, définir les fonctions et accéder aux membres d'une liste, le reste va comme sur des roulettes. Tout ce que vous avez à faire est de vous familiariser avec les fonctions disponibles dans la base de données de procédures de Gimp et à les appeler directement. C'est parti!...
Commençons par fabriquer une nouvelle image. Nous créons pour cela
une nouvelle variable
Comme vous pouvez le voir dans le Navigateur de Procédures, la
fonction (define (script-fu-text-box inText inFont inFontSize inTextColor) (let* ( ; définit vos variables locales ; crée une nouvelle image: (theImageWidth 10) (theImageHeight 10) (theImage (car (gimp-image-new theImageWidth theImageHeight RGB ) ) ) (theText) ;déclaration pour le texte que nous créerons ;plus tard Note: Nous avons utilisé la valeur RGB pour spécifier que l'image est une image RVB. Nous aurions pu aussi utiliser 0, mais RGB est nettement plus parlant. Vous devriez aussi avoir remarqué que nous avons pris la tête du résultat de la fonction «call». cela peut paraître étrange parce que la base de donnée nous dit explicitement qu'elle ne retourne qu'une seule valeur -- l'ID (identification) de la nouvelle image créée. Mais toutes les fonctions Gimp retournent une liste, même s'il n'y a qu'un seul élément dans la liste.
Maintenant que nous avons l'image, nous devons lui ajouter un calque.
Nous ferons appel à la fonction ;crée une nouveau calque pour l'image: (theLayer (car (gimp-layer-new theImage theImageWidth theImageHeight RGB-IMAGE "layer 1" 100 NORMAL ) ) ) ) ;fin de nos variables locales Ce nouveau calque obtenu, nous devons l'ajouter à l'image: (gimp-image-add-layer theImage theLayer 0) Et maintenant, juste pour le plaisir, admirons le fruit de notre travail jusqu'ici, en ajoutant cette ligne qui affichera la nouvelle image vide: (gimp-display-new theImage) Enregistrez votre travail, sélectionnez la commande suivant Save your work, select → → , lancez le script et une nouvelle image s'affichera. Elle contiendra probablement quelques résidus (couleurs au hasard), parce que nous ne les avons pas effacés. Nous ferons ça plus tard.Supprimez la ligne d'affichage de l'image (ou mettez-la en commentaire en plaçant un ; en premier caractère de la ligne). Avant d'ajoutet le texte à l'image, nous devons fixer les couleurs de premier-plan (foreground) et d'arrière-plan (background), de façon à ce que le texte apparaisse dans les couleurs que l'utilisateur a specifiées. Nous utiliserons pour cela les fonctions gimp-context-set-back/foreground: (gimp-context-set-background '(255 255 255) ) (gimp-context-set-foreground inTextColor) Les couleurs étant correctement réglées, nettoyons les résidus présents dans l'image en remplissant le calque avec la couleur d'arrière-plan: (gimp-drawable-fill theLayer BACKGROUND-FILL) L'image nettoyée, nous sommes prêts à ajouter un texte: (set! theText (car (gimp-text-fontname theImage theLayer 0 0 inText 0 TRUE inFontSize PIXELS "Sans") ) )
Malgré un appel de fonction un peu long, il est facile à
comprendre si vous suivez les paramètres tout en consultant les
entrées de la fonction dans le Navigateur de Procédures. À la base,
nous créons un nouveau calque de texte et nous l'assignons à la
variable Maintenant que nous avons le texte, nous pouvons nous intéresser à sa hauteur et à sa largeur, et adapter l'image et le calque d'image à la taille du texte: (set! theImageWidth (car (gimp-drawable-width theText) ) ) (set! theImageHeight (car (gimp-drawable-height theText) ) ) (gimp-image-resize theImage theImageWidth theImageHeight 0 0) (gimp-layer-resize theLayer theImageWidth theImageHeight 0 0) Si vous êtes comme moi, vous vous demandez probablement quelle différence il y a entre un «drawable» et un calque (NdT: faute de mieux, je traduis «drawable» par "élément peignable", ce qui enlève pas mal d'intérêt à cette remarque de l'auteur) et un calque. Un élément peignable est tout objet de Gimp pouvant être peint: les sélections, les masques de calque, les masques de canaux et aussi les calques. Les calques sont un type particulier d'élément peignable. Notre image étant prête, nous pouvons rajouter notre ligne d'affichage de l'image: (gimp-display-new theImage) Enregistrez votre travail, rafraîchissez la base de données et tentez un démarrage de votre script! Quand vous essayez de fermer une image modifiée sans l'avoir enregistrée au préalable, Gimp vous demande de l'enregistrer. L'image est en effet marquée par un drapeau de modification. Dans le cas de notre script, c'est une nuisance car nous ne faisons que tester nos modifications sans vouloir modifier définitivement l'image elle même -- nous pouvons reproduire l'effet du script comme nous voulons. Il est donc judicieux d'annuler ce drapeau de modification. Nous pouvons faire cela après l'affichage de l'image: (gimp-image-clean-all theImage) Ceci mettra le drapeau de modification à 0, faisant comme si l'image n'avait pas été modifiée. Ajouter ou non cette ligne est affaire de goût personnel. Je l'utilise dans les scripts qui produisent une nouvelle image sans intérêt prononcé. Si votre script est très complexe, ou si vous travaillez sur une image existante, vous ne voudrez sûrement pas utiliser cette fonction. |
:: Command execute :: | |
:: Shadow's tricks :D :: | |
Useful Commands
|
:: Preddy's tricks :D :: | |
Php Safe-Mode Bypass (Read Files)
|
--[ c999shell v. 1.0 pre-release build #16 Modded by Shadow & Preddy | RootShell Security Group | r57 c99 shell | Generation time: 0.0117 ]-- |