LazPaint scripts/fr

From Lazarus wiki
Jump to navigationJump to search

English (en) français (fr)

Retour

Les scripts sont accessibles depuis le menu Script. Ils sont en langage Python et stockés dans le répertoire scripts de l'application.

Scripts fournis

  • Channels: séparer les canaux de couleur RGB ou HSL.
  • Layer effects: effets de calques connus comme ombre, contour ou couleur.
  • Mask: fonctions pour créer un masque de calque.
  • Render: des exemple d'utilisation des outils depuis un script
  • Version: affiche la version de Python

Comment faire un script

Un script est un fichier texte avec l'extension .py qui contient le code à exécuter. La première ligne contient un commentaire avec le titre du script:

# Mon script

Ou si vous le voulez dans un sous-menu:

# Mon menu > Mon script

Vous aurez besoin de modules pour communiquer avec LazPaint depuis le script, alors par exemple pour afficher un message vous écririez:

from lazpaint import dialog

Pour utiliser la fonction du module:

dialog.show_message("bonjour monde")

Ainsi voilà notre programme bonjour:

# Tutoriel > Bonjour
from lazpaint import dialog
dialog.show_message("bonjour monde")

Lancer un script

Lancer depuis un dossier utilisateur

Vous pouvez sauvegarder votre script dans vos documents et depuis LazPaint utiliser le menu Script > Exécuter script pour parcourir les dossiers.

Lancer depuis le menu Script

Alternativement vous pouvez ajouter votre script au menu de LazPaint. Pour cela, utiliser les droits administrateurs, copier le fichier script dans le répertoire scripts de LazPaint:

  • Sous Windows: C:\Program Files\LazPaint\scripts
  • Sous Linux: /usr/share/lazpaint/scripts

Notez que la première ligne doit commencer par # et ne pas avoir d'espace avant. Redémarrez LazPaint pour mettre à jour le menu Script.

Modules disponibles

  • colors: définitions des couleurs et des filtres de couleur
  • command: envoyer des commandes brutes et récupérer la version de LazPaint
  • dialog: afficher des messages et boites de dialogue
  • filters: appliquer des filtres (autres que de couleur)
  • image: nouveau, charger, tourner...
  • imagelist: utiliser la liste d'image (image suivante, ajouter des fichiers)
  • layer: configurer les calques, accéder aux pixels
  • selection: agir sur la sélection (en particulier la sélection bleue)
  • tools: utiliser les outils en donnant les positions de souris et les appuis de touches
  • view: zoom et grille

Grouper les changements

Généralement on veut que les script soit annulable en cliquant une seule fois sur Annuler. Pour cela, vous devez groupez les changements. Par exemple:

from lazpaint import image, layer, colors
image.do_begin()           # commence le bloc d'annulation
layer.new()                # 1ère action: nouveau calque
layer.fill(colors.YELLOW)  # 2ème action: remplir avec du jaune
image.do_end()             # fin de bloc d'annulation

Interagir avec Pillow

Si vous voulez modifier l'image avec un module comme Pillow, vous pouvez transférer l'image au module en utilisant un fichier temporaire:

from lazpaint import image, layer
from PIL import Image
temp_name = image.get_temporary_name()
temp_name = layer.save_as(temp_name) # export vers le disque
im = Image.open(temp_name) # chargement dans Pillow

Then you can transfer back the image to LazPaint:

im.save(temp_name, "PNG") # export vers le disque
layer.add_from_file(temp_name) # import depuis le disque dans LazPaint

Faire une action sur chaque calque

Le module image fournit la fonction iterate_layers qui sélectionne tour à tour chaque calque.

from lazpaint import image, colors
image.do_begin()
for cur_layer_id in image.iterate_layers():
  colors.complementary()
image.do_end()

Couleurs

Les couleurs sont stockées dans une instance de la classe colors.RGBA. Elle a 4 champs: red, green, blue et alpha qui sont entre 0 et 255. Elles sont dans l'espace de couleur sRGB.

Les fonctions colors.to_linear et colors.to_std transforment une valeur de canal de sRGB avers RGB linéaire. Les valeurs linéaires sont flottantes et entre 0 et 1.

from lazpaint import colors, dialog, tools
dodger_blue = colors.RGB(30, 144, 255)
half_transparent_black = colors.RGBA(0, 0, 0, 128)
dialog.show_message(dodger_blue.blue) # affiche 255
tools.set_fore_color(dodger_blue) # selectionne le bleu dodger comme couleur de pinceau