Images

A propos

Cette librairie a été conçue pour l’enseignement de la SNT.

Elle permet de manipuler des images assez facilement.

L’objectif est de permettre aux élèves d’accéder au contenu des pixels d’une image numérique (enregistrée dans le même répertoire que le fichier python sur lequel on travaille), de modifier les valeurs des composantes des pixels et finalement de rendre possible l’exécution de petits scripts de manipulation d’images.

La librairie est basée sur PIL et utilise les noms de couleurs de pydiderotlibs, comme détaillé dans la section suivante.

Vous pouvez, par exemple, l’utiliser pour créer un script convertissant une image couleurs en niveaux de gris ou encore un script générant le négatif d’une image donnée.

Couleurs

../_images/couleurs.png

Les formats de couleurs acceptés sont:

  • Une chaîne de caractères (str) en francais dans la liste ci-contre ('rouge' par exemple).
  • Une chaîne de caractères représentant la couleur sous forme hexadécimale. Par exemple la couleur rouge est '#FF0000'.
  • Un tuple RVB (r, v, b)r, v, b sont des entiers entre O et 255 . Par exemple la couleur rouge est (255, 0, 0).
  • Une chaîne de caractère en anglais dans la liste suivante: 'black', 'white','grey', 'red', 'green', 'blue', 'yellow', 'pink', 'purple'.

Utilisation

Voici quelques exemples :

# On importe la librairie
from pydiderotlibs.images import *

# On affiche dans la console la composante bleue du pixel (100,200,300) (le résultat est '300')
print(bleu((100,200,300)))

# On crée une version de l'image ``essai.png`` qui sera manipulable par Python et qui sera stockée sous le nom de variable ``img``
img = creer_image('essai.png')

# On affiche la définition de l'image, puis sa largeur.
print(definition_image(img))
print(largeur_image(img))

# On affiche l'image dans la visionneuse du système d'exploitation
afficher_image(img)

# On affiche le pixel de composantes RVB (100,100,100) (c'est un pixel de couleur grise)
afficher_pixel((100, 100, 100))

# On affiche les trois composantes RVB du pixel situé juste à droite du pixel de coordonnées (100,100).
# Ce pixel voisin à pour coordonnées (101,100)
print(pixel_voisin(img, (100, 100)))

# On affiche les 3 composantes RVB du pixel de coordonnées (10,10)
print(copier_pixel(img, (10, 10)))

# On remplace le pixel de coordonnées (10,10) par un pixel noir (0,0,0)
coller_pixel(img, (10, 10), (0, 0, 0))

# On définit une fonction qui convertit un pixel donné en pixel "niveau de gris"
def gris(pixel):
    g = int((rouge(pixel) + vert(pixel) + bleu(pixel)) / 3)
    return (g, g, g)

# On applique la fonction ``gris()`` précédente aux pixels de l'image ``img`` dont les coordonnées sont situées dans le rectangle de diagonale '(100,300)--(200,500)'
changer_les_pixels(img,gris,100,200,300,500)

Documentation

importer_image(fichier)[source]

Crée, à partir d’une image enregistrée sur l’ordinateur (dans le même dossier que le fichier python sur lequel on travaille), une image manipulable dans le langage python (avec la librairie PIL)

Arguments :
fichier : nom du fichier enregistré sur l’ordinateur (avec le suffixe : par exemple « monimage.png ») Le plus simple est d’avoir le fichier de l’image dans le même dossier que le fichier python sur lequel on travaille, sinon il faut mettre le chemin comme par exemple « U:Documentsmonimage.jpg »
Alias :
creer_image()
importer_image_auto(fichier)[source]

Crée, à partir d’une image enregistrée sur l’ordinateur (dans le même dossier que le fichier python sur lequel on travaille), une image manipulable dans le langage python (avec la librairie PIL)

Arguments :
fichier : nom du fichier enregistré sur l’ordinateur (avec le suffixe : par exemple « monimage.png ») Le plus simple est d’avoir le fichier de l’image dans le même dossier que le fichier python sur lequel on travaille Si l’image n’est pas trouvée dans ce dossier, les dossiers “téléchargement” et “images” de Windows sont explorés. Si aucune extension de fichier n’est indiquée, une série d’extensions correspondants aux principaux formats d’images est essayée.
Alias :
importer_image_panic() creer_image_auto() creer_image_panic()
definition_image(image)[source]

Retourne la définition de l’image image. C’est une liste de deux nombres. Le premier est la largeur (en pixels), le second la hauteur (en pixels).

Par exemple : (200,300)

Arguments :
img : nom de la variable Python contenant l’image
largeur_image(image)[source]

Retourne la largeur de l’image image (en pixels).

Arguments :
img : nom de la variable Python contenant l’image
hauteur_image(image)[source]

Retourne la hauteur de l’image image (en pixels).

Arguments :
img : nom de la variable Python contenant l’image
afficher_image(image)[source]

Affiche image (attention : sans l’enregistrer !).

Arguments :
img : nom de la variable Python contenant l’image
afficher_pixel(pixel)[source]

Affiche une petite image unie, de 10x10 pixels, de la couleur du pixel pixel.

Arguments :
pixel : un pixel, c’est à dire un triplet de trois nombres entiers entre 0 et 255. Par exemple : (0,0,0) (pixel noir) ou : (255,255,255) (pixel blanc)
rouge(pixel)[source]

Donne la valeur de rouge du pixel pixel.

Arguments :
pixel : un pixel, c’est à dire un triplet de trois nombres entiers entre 0 et 255. Par exemple : (0,0,0) (pixel noir) ou : (255,255,255) (pixel blanc)
vert(pixel)[source]

Donne la valeur de vert du pixel pixel.

Arguments :
pixel : un pixel, c’est à dire un triplet de trois nombres entiers entre 0 et 255. Par exemple : (0,0,0) (pixel noir) ou : (255,255,255) (pixel blanc)
bleu(pixel)[source]

Donne la valeur de bleu du pixel pixel.

Arguments :
pixel : un pixel, c’est à dire un triplet de trois nombres entiers entre 0 et 255. Par exemple : (0,0,0) (pixel noir) ou : (255,255,255) (pixel blanc)
pixel_voisin(image, coord)[source]

Donne les coordonnées du pixel situé à droite du pixel pixel. (S’il n’y a pas de pixel plus à droite car on est au bord de l’image, retourne les mêmes coordonnées.)

Arguments :
coord : coordonnées du pixel image : nom de la variable Python contenant l’image
copier_pixel(image, coord)[source]

Retourne le pixel de l’image image, situé aux coordonnées coord.

Arguments :
coord : coordonnées du pixel image : nom de la variable Python contenant l’image
coller_pixel(image, coord, pixel)[source]

Remplace le pixel de l’image image, situé aux coordonnées coord, par le pixel pixel.

Arguments :
coord : coordonnées du pixel image : nom de la variable Python contenant l’image pixel : un pixel, c’est à dire un triplet de trois nombres entiers entre 0 et 255. Par exemple : (0,0,0) (pixel noir) ou : (255,255,255) (pixel blanc)
enregistrer_image(image, nom)[source]

Enregistre l’image image, avec le nom de fichier indiqué.

Arguments :
image : nom de la variable Python contenant l’image nom : nom du fichier avec extension, par exemple « monimage.png »
changer_les_pixels(image, fonction, x0=0, x1=0, y0=0, y1=0)[source]

Modifie les pixels de l’image image, en leur appliquant la fonction fonction.

Arguments :
image : nom de la variable Python contenant l’image fonction : fonction à appliquer aux pixels. Ce doit être une fonction qui prend un pixel en argument et qui retourne un pixel x0 (optionnel) : valeur minimale de la première coordonnée des pixels à modifier (0 par défaut) x1 (optionnel) : valeur maximale de la première coordonnée des pixels à modifier (0 par défaut, ce qui signifie que les pixels seront modifiés jusqu’à xmax) y0 (optionnel) : valeur minimale de la deuxième coordonnée des pixels à modifier (0 par défaut) y1 (optionnel) : valeur maximale de la deuxième coordonnée des pixels à modifier (0 par défaut, ce qui signifie que les pixels seront modifiés jusqu’à ymax)