From 51e10daebf08e800fee85140a3b4d8bd19417a3f Mon Sep 17 00:00:00 2001
From: Louis Chmielewski <louis.chmielewski@icloud.com>
Date: Tue, 26 Mar 2024 18:48:44 +0100
Subject: [PATCH] decoupe_image et modif bloc.py

---
 Projet/README.md        |  6 ++++++
 Projet/decoupe_image.py | 24 +++++++++++++++---------
 Projet/src/bloc.py      | 24 ++++++++++++------------
 3 files changed, 33 insertions(+), 21 deletions(-)

diff --git a/Projet/README.md b/Projet/README.md
index fd2b270..1922deb 100644
--- a/Projet/README.md
+++ b/Projet/README.md
@@ -24,3 +24,9 @@ author : Louis Chmielewski
 - 24/03 : petite modification de la méthode init pour la class bloc
 - 24/03 : début réalisation de la fonction découpe_image
 
+- 26/03 : création du script de conversion de fichier csv en fichier png
+- 26/03 : corrections d'erreurs dans bloc.py
+- 26/03 : réalisation de la fonction decoupe_image
+
+
+
diff --git a/Projet/decoupe_image.py b/Projet/decoupe_image.py
index 410ceaf..1647bf4 100755
--- a/Projet/decoupe_image.py
+++ b/Projet/decoupe_image.py
@@ -11,6 +11,7 @@
 """
 from PIL import Image, ImageDraw
 from bloc import Bloc
+import manip_couleurs
 
 #importer image et recuperer sa taille
 
@@ -30,15 +31,20 @@ def decoupe_image(image: Bloc, ordre: int) -> Bloc:
     """
     image.pixel_hl = (0,0)
     image.pixel_lr = im.size
-#     if ordre !=0:
-#         en_4_blocs(bloc)
-#         decoupe_image(*arg: list[Bloc], ordre-1)
-#         if sont_4_blocs_uniformes_proches(bloc1, bloc2, bloc3, bloc4):
-#             # fonction à définir dans la classe bloc
-#         else:
-#             # fonction à définir dans la classe bloc
-#     else:
-#         # fonction à définir dans la classe bloc
+    if ordre !=0:
+        en_4_blocs(bloc)
+        decoupe_image(*arg: list[Bloc], ordre-1)
+        if sont_4_blocs_uniformes_proches[bloc1, bloc2, bloc3, bloc4]:
+            return new_bloc = moyenne_couleur_bloc(moyenne_couleur_bloc(bloc1),\
+                                        moyenne_couleur_bloc(bloc2),\
+                                        moyenne_couleur_bloc(bloc3),\
+                                        moyenne_couleur_bloc(bloc4))
+        else:
+            new_bloc = [bloc1, bloc2, bloc3, bloc4]
+            return new_bloc
+    else:
+        new_bloc = [bloc1, bloc2, bloc3, bloc4]
+        return new_bloc
 
             
     
diff --git a/Projet/src/bloc.py b/Projet/src/bloc.py
index 2a96b58..17167fe 100755
--- a/Projet/src/bloc.py
+++ b/Projet/src/bloc.py
@@ -34,7 +34,7 @@ class Bloc:
         """
         return self.bloc == other.bloc
     
-    def est_bloc_uniforme(bloc1:Bloc, bloc2:Bloc, bloc3:Bloc, bloc4:Bloc)->bool:
+    def est_bloc_uniforme(liste_bloc: list[Bloc, Bloc, Bloc, Bloc])->bool:
         """
         Renvoie True si le bloc est un bloc uniforme, c'est à dire si les 4 couleurs du bloc sont proches 
         Précondition : aucune
@@ -42,9 +42,9 @@ class Bloc:
         $$$ 
 
         """
-        return est_couleur_proche(moyenne_couleur_bloc(bloc1), moyenne_couleur_bloc(bloc2)) and \
-               est_couleur_proche(moyenne_couleur_bloc(bloc1), moyenne_couleur_bloc(bloc3)) and \
-               est_couleur_proche(moyenne_couleur_bloc(bloc1), moyenne_couleur_bloc(bloc4))
+        return est_couleur_proche(moyenne_couleur_bloc(liste_bloc[0]), moyenne_couleur_bloc(liste_bloc[1])) and \
+               est_couleur_proche(moyenne_couleur_bloc(liste_bloc[0]), moyenne_couleur_bloc(liste_bloc[2])) and \
+               est_couleur_proche(moyenne_couleur_bloc(liste_bloc[0]), moyenne_couleur_bloc(liste_bloc[3]))
     
     
     def est_bloc_non_uniforme()-> bool:
@@ -58,7 +58,7 @@ class Bloc:
         """
         return not(est_bloc_uniforme())
     
-    def sont_4_blocs_uniformes_proches(bloc1: Bloc, bloc2: Bloc, bloc3: Bloc, bloc4: Bloc)-> bool:
+    def sont_4_blocs_uniformes_proches(liste_bloc: list[Bloc, Bloc, Bloc, Bloc])-> bool:
         """
         Renvoie True si les 4 blocs uniformes sont proches
         Précondition : aucune
@@ -69,9 +69,8 @@ class Bloc:
         False
         """
         res = False
-        parametres = [bloc1, bloc2, bloc3, bloc4]
-        if all(est_bloc_uniforme(parametres)):
-            for i in parametres(1,len(parametres)-1):
+        if all(est_bloc_uniforme(liste_bloc)):
+            for i in range(1,len(liste_bloc)-1):
                 if est_couleur_proche(bloc1, bloc[i]):
                     res = True
         return res
@@ -86,14 +85,15 @@ class Bloc:
 
         """
         bloc1 = pixel_hl = image.getpixel((0, 0)) and \
-                pixel_lr = image.getpixel((largeur/2, hauteur/2)) \
+                pixel_lr = image.getpixel((largeur/2, hauteur/2))
         bloc2 = pixel_hl = image.getpixel((largeur/2, 0)) and \
-                pixel_lr = image.getpixel((largeur, hauteur/2)) \
+                pixel_lr = image.getpixel((largeur, hauteur/2))
         bloc3 = pixel_hl = image.getpixel((0, hauteur/2)) and \
-                pixel_lr = image.getpixel((largeur/2, hauteur)) \
+                pixel_lr = image.getpixel((largeur/2, hauteur))
         bloc4 = pixel_hl = image.getpixel((largeur/2, hauteur/2)) and \
                 pixel_lr = image.getpixel((largeur, hauteur))
-        return [bloc1, bloc2, bloc3, bloc4]
+        new_bloc = [bloc1, bloc2, bloc3, bloc4]
+        return new_bloc
     
         
     
-- 
GitLab