Découper des images en 4 parties distinctes en Python

Voici un code très utile en Python qui permet de diviser des images en quatre parties égales et de les sauvegarder dans un répertoire de destination spécifique.

Voici une description détaillée de son fonctionnement :

  1. Importation des bibliothèques nécessaires : Le script commence par importer `Image` de la bibliothèque `PIL` (Python Imaging Library), une bibliothèque puissante pour ouvrir, manipuler et sauvegarder de nombreux formats de fichiers d’images. Il importe également le module `os` pour interagir avec le système de fichiers de l’ordinateur.
  2. Définition des chemins des répertoires : Deux variables, `REPERTOIRE_SOURCE` et `REPERTOIRE_DESTINATION`, sont définies pour stocker les chemins des répertoires source et destination, respectivement.
  3. Fonction `diviser_image` : Cette fonction prend deux arguments – le chemin de l’image d’origine et le chemin du dossier de destination. Elle ouvre l’image d’origine, calcule ses dimensions, puis la divise en quatre parties égales en utilisant la méthode `crop` de l’objet `Image`. Chaque partie de l’image est ensuite sauvegardée dans le répertoire de destination sous format PNG, avec un nom de fichier spécifique indiquant la partie de l’image.
  4. Fonction `diviser_repertoire` : Cette fonction parcourt toutes les images (fichiers JPG ou PNG) dans le répertoire source, en appelant la fonction `diviser_image` pour chaque image trouvée. Elle assure ainsi la division de toutes les images du répertoire source.
  5. Exécution du script : Enfin, le script appelle la fonction `diviser_repertoire` avec les chemins des répertoires source et destination, ce qui déclenche le processus de division pour l’ensemble des images présentes dans le répertoire source.

Le script est donc utile pour automatiser la tâche de division d’images en quatre parties, ce qui peut être pertinent pour des applications telles que le traitement d’images, la création de puzzles, ou tout autre scénario nécessitant de diviser des images en segments égaux.

from PIL import Image
import os

# Chemin du répertoire source et destination
REPERTOIRE_SOURCE = r"source"
REPERTOIRE_DESTINATION = r"destination"

def diviser_image(image_path, destination_path):
# Ouvrir l'image d'origine
image = Image.open(image_path)

# Diviser l'image en quatre parties égales
width, height = image.size
quarter_width = width // 2
quarter_height = height // 2

# Découper et sauvegarder chaque partie
for i in range(2):
for j in range(2):
box = (j * quarter_width, i * quarter_height, (j + 1) * quarter_width, (i + 1) * quarter_height)
region = image.crop(box)
nom_fichier = os.path.splitext(os.path.basename(image_path))[0] + f"_part_{i * 2 + j + 1}.png" # Utiliser l'extension .png
chemin_destination = os.path.join(destination_path, nom_fichier)
region.save(chemin_destination, format='PNG') # Utiliser le format 'PNG'

print(f"Partie {i * 2 + j + 1} de {os.path.basename(image_path)} sauvegardée : {chemin_destination}")

def diviser_repertoire(source, destination):
# Parcourir toutes les images dans le répertoire source
for filename in os.listdir(source):
if filename.endswith(".jpg") or filename.endswith(".png"):
chemin_source = os.path.join(source, filename)
diviser_image(chemin_source, destination)

# Appeler la fonction pour diviser les images du répertoire source et placer les parties dans le répertoire destination
diviser_repertoire(REPERTOIRE_SOURCE, REPERTOIRE_DESTINATION)

Prérequis : Vous devez installer la librairie Pillow. Plus d’information ici.

LAISSER UNE REPONSE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici

Convertir en masse des images jpeg/jpg en Avif ou WebP

L'optimisation des images est une étape cruciale pour améliorer les performances des sites web,...