Skip to content
Snippets Groups Projects
Commit dfcd2483 authored by Angy Wallot's avatar Angy Wallot
Browse files

projet

parent 2760f9b5
No related branches found
No related tags found
No related merge requests found
class Bloc:
"""Paramètres :
à_remplacer_par_ce_que_fait_la_fonction
Précondition :
Exemple(s) :
$$$
"""
def __init__(self, uni:bool, coord:list[int]):
def __init__(self, *arg):
"""
uni : True si le bloc est uniforme, False sinon
coord :
Précondition :
Creer un bloc contenant des arguments variables
Exemple(s) :
$$$
"""
assert len(args) >= 2 and len(args) <= 3 , #2 ou 3 arguments car la taille et l'uniforlité sont nécessaire
assert type(args[0]) == tuple, "la taille doit être un tuple contenant 2 nombres"
self.taille = args[0]
assert type(args[1]) == bool, "l'uniformité doit être un booléen"
self.uni = args[1]
if len(args) > 2:
class Person:
def __init__(self, *args):
"""
initialise une nouvelle personne.
"""
assert len(args) >= 1 and len(args) <= 3 , "1, 2 ou 3 arguments"
assert type(args[0]) == str, "le nom doit être une chaîne de caractères"
self.nom = args[0]
if len(args) > 1:
assert type(args[1]) == str, "le prénom doit être une chaîne de caractères"
self.prenom = args[1]
else:
self.prenom = ""
if len(args) > 2:
assert type(args[2]) == int, "le numéro de téléphone doir être un entier"
self.tel = args[2]
else:
self.tel = -1
def __repr__(self) -> str:
"""
renvoie la représentation de la personne.
"""
p_args = f"'{self.nom}'"
if self.prenom != "":
p_args += f",'{self.prenom}'"
if self.tel >= 0:
p_args += f",{self.tel}"
return f"Person({p_args})"
def __str__(self) -> str:
"""
renvoie une repésentation textuelle de la personne
"""
res = self.nom
if self.prenom != "":
res = f"{self.prenom} {res}"
if self.tel >= 0:
res = f"{res}, {self.tel}"
return res
\ No newline at end of file
from PIL import Image, ImageDraw
# def decoupe_image(im, ordre:int):
# """à_remplacer_par_ce_que_fait_la_fonction
#
# Précondition :
# Exemple(s) : ordre entier,
# $$$
#
# """
# if ordre != 0:
# taille = im.size
# blocs = [((0,0),(taille[0]//2, taille[1]//2)),
# ((taille[0]//2,0),(taille, taille[1]//2)),
# ((0,taille[1]//2),(taille[0]//2,taille)),
# ((taille[0]//2,taille[1]//2),(taille,taille))]
# ordre -= 1
# if
def decoupe_image(im, ordre:int):
"""
Précondition :
Exemple(s) :
$$$
"""
if ordre != 0:
taille = im.size
creer bloc1 = ((0,0),(taille[0]//2, taille[1]//2)) # coordonnées correspondant respectivement à en haut à gaucge et en bas à droite
creer bloc2 = ((taille[0]//2,0),(taille, taille[1]//2))
creer bloc3 = ((0,taille[1]//2),(taille[0]//2,taille))
creer bloc4 = ((taille[0]//2,taille[1]//2),(taille,taille))
decoupe_image(avec les blocs im, ordre-1)
couleur_im = couleurs_moyenne(liste_couleur(im, taille[0], taille[1]))
couleur_b1 = couleurs_moyenne(liste_couleur(im, bloc1[0], bloc1[1]))
couleur_b2 = couleurs_moyenne(liste_couleur(im, bloc2[0], bloc2[1]))
couleur_b3 = couleurs_moyenne(liste_couleur(im, bloc3[0], bloc3[1]))
couleur_b4 = couleurs_moyenne(liste_couleur(im, bloc4[0], bloc4[1]))
if distance_entre_deux_images(couleur_im, couleur_b1) and distance_entre_deux_images(couleur_im, couleur_b2) and distance_entre_deux_images(couleur_im, couleur_b3) and distance_entre_deux_images(couleur_im, couleur_b4):
res = creer bloc(couleurs_moyenne[couleur_b1,couleur_b2,couleur_b3,couleur_b4], taille)
else:
res = creer bloc avec les 4 blocs ?
else:
res = creer bloc(couleur_im, taille)
def couleurs_moyenne(liste:list[tuple])->list:
"""
......
......@@ -3,4 +3,4 @@ Auteur: Angy Wallot
JOURNAL:
06/03/24: lecture + plan
20/03/24: debut de la classe et de la fonction decoupe
27/03/24: fonction couleur_moyenne, liste_couleur, distance_entre_deux_images
27/03/24: fonction couleur_moyenne, liste_couleur, distance_entre_deux_images, essaie de convertir mes fonctions dans la classe.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment