Bonjour, je réalise un programme de traitement d'image, et j'ai un petit problème au niveau d'une fonction qui duplique l'image 4 fois pour lui donner un effet photomaton. Pour ce programme, j'utilise une interface graphique et je souhaite afficher par dessus mon image d'origine l'image photomaton. Je dois donc la redimensionner comme la première. Aucun problème pour l'instant, je crée une nouvelle image 2 fois plus grande que celle d'origine, j'y duplique mon image d'origine et je redimensionne l'image photomaton. C'est ici que ça bloque, je souhaite remplacer les pixels de l'image d'origine par ceux de la nouvelle image, mais sans aucuns messages d'erreur ni rien, mon image d'origine reste la même image. Je ne comprends vraiment pas d'où vient le problème, voici mon code:
Ce n'est qu'une partie de mon code en simplifié, mais cela ne fonctionne quand même pas, pouvez-vous m'aider? Pourtant, si je remplace le im.show() à la fin par un new_photo.show(), l'image dupliquée apparaît dans les bonnes dimensions.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 from PIL import Image im=Image.open("phare.jpg") pix=im.load() larg,haut=im.size def photomatonner(): global new_photo if (mode=="L"): new_photo=Image.new('L',(2*larg,2*haut)) pix2=new_photo.load() for i in range(0,larg*2): for j in range (0, haut*2): pix2[i,j]=pix[i%larg,j%haut] new_photo=new_photo.resize((larg,haut)) for i in range (0,larg): for j in range (0,haut): pix[i,j]=pix2[i,j] photomatonner() im.show()
Merci de votre aide !![]()
Partager