from PIL import Image
from sys import exit
im=Image.open("luffy.jpg")
# t la taille des pixels voulus
def pixel(i,j,t,imge):
r = []
g = []
b = []
#balayage du carré et récupération du code RGB
for e in range(t):
for f in range(t):
atemp=i+e
btemp=j+f
(rouge,vert,bleu) = imge.getpixel((atemp,btemp))
r.append(rouge)
g.append(vert)
b.append(bleu)
#Calcul de la moyenne des valeurs de rouge, de bleu et de vert récupérés
rmoyen = int(sum(r)/len(r))
gmoyen = int(sum(g)/len(g))
bmoyen = int(sum(b)/len(b))
#Création d'une variable que l'on pourra réutiliser dans un autre programme
global rgbmoyen
#Affection du code rgbmoyen
rgbmoyen = (rmoyen,gmoyen,bmoyen)
return rgbmoyen
#Création d'un programme pixellisation avec en paramètre im (l'image) et p la taille des pixels voulus
def pixellisation(image,p):
#récupération des dimensions de l'image
(c,l)=image.size
#test si p divise c et l
if c%p != 0 or l%p != 0:
print(p,'doit diviser',l,'et',c)
exit('utiliser une autre valeur de pixellisation')
#création de notre nouvelle image
imagepixel=Image.new('RGB',(c,l))
#balayage pour notre nouvelle image avec un pas de p
for x in range(0,c,p):
for y in range(0,l,p):
#utilisation du programme pixel pour le carré commencant aux coordonnées (x,y)
pixel(x,y,p,image)
for c in range(p):
for d in range(p):
#affection du code rgbmoyen à tous les pixels du carré
imagepixel.putpixel((x+c,y+d),rgbmoyen)
#sauvegarde de l'image
imagepixel.save("imgpixel.jpg")
#affichage de l'image
imagepixel.show()