Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
A
AP-WALLOT-Angy
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Angy Wallot
AP-WALLOT-Angy
Commits
dfcd2483
Commit
dfcd2483
authored
1 year ago
by
Angy Wallot
Browse files
Options
Downloads
Patches
Plain Diff
projet
parent
2760f9b5
No related branches found
No related tags found
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
projet/classe.py
+51
-13
51 additions, 13 deletions
projet/classe.py
projet/decoupe im.py
+29
-16
29 additions, 16 deletions
projet/decoupe im.py
projet/readme.md
+1
-1
1 addition, 1 deletion
projet/readme.md
with
81 additions
and
30 deletions
projet/classe.py
+
51
−
13
View file @
dfcd2483
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
This diff is collapsed.
Click to expand it.
projet/decoupe im.py
+
29
−
16
View file @
dfcd2483
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
:
"""
...
...
This diff is collapsed.
Click to expand it.
projet/readme.md
+
1
−
1
View file @
dfcd2483
...
...
@@ -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.
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment