Advertisement
raphael76280

Editeur D'image MiniProjet

Jan 6th, 2018
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.54 KB | None | 0 0
  1. # Importer les librairies Pygame et PIL
  2. import pygame
  3. from PIL import Image
  4. from PIL import ImageFilter
  5. from pygame.locals import *
  6. pygame.init()
  7.  
  8.  
  9.  
  10. #On créer une fonction modify qui prend 2 argument: l'image a modifié et la modification à éffectué
  11. def modify(modif, imageChoisie):
  12.     #On ouvre l'image choisie
  13.     if (imageChoisie == "etretat"):
  14.         image = Image.open("src/etretat.jpg")
  15.     elif(imageChoisie == "ndds"):
  16.         image = Image.open("src/NDDS.JPG")
  17.  
  18.     #on récupére sa taille
  19.     size = image.size
  20.     #on décompose l'image pixel par pixel
  21.     pixs = image.load()
  22.     #on sépare de sa taille sa largeur et sa hauteur
  23.     width = size[0]
  24.     height = size[1]
  25.  
  26.     x=0
  27.     y=0
  28.     #Si la modification est un contour on applique un filtre de la librairie PIL
  29.     if(modif == "contour"):
  30.         image = image.filter(ImageFilter.CONTOUR)
  31.     #Si c'est un seuillage on demande la valeur du Seuil
  32.     elif(modif == "seuillage"):
  33.         seuil = int(input("Seuil?"))
  34.  
  35.     #On fais deux boucle x et y pour faire pixel par pixel
  36.     for x in range(width):
  37.         for y in range(height):
  38.             #on récupére la valeur du pixel au coordonées X et Y
  39.             p = pixs[x, y]
  40.             #Si la modification est un négatif on affecte au pixel la valeur de 255- sa valeur actuelle
  41.             if(modif == "negatif"):
  42.                 pixs[x, y] = 255-p
  43.             #Si la modification est un seuillage on affecte au pixel la valeur 0 si sa valeur actuelle est inférieure au seuil
  44.             elif(modif == "seuillage"):
  45.                 if(p < seuil):
  46.                     pixs[x, y]=0
  47.  
  48.  
  49.     #on sauvegarde l'image
  50.     image.save(modif + ".jpg")
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57. # Ouvrir une fenêtre Pygame
  58. taille = largeur, hauteur = 300, 300
  59. ecran = pygame.display.set_mode(taille)
  60.  
  61. pygame.display.set_caption("Modification d'image") # Nommer la fenêtre
  62.  
  63. # Initialiser les variables
  64. continuer = 1 # Créer la variable continuer
  65. couleur_fond = 88,88,88 # Fond CYAN (codage RGB)
  66.  
  67. #On charge les images des boutons
  68. etretat = pygame.image.load("src/boutonetretat.png").convert_alpha()
  69. ndds = pygame.image.load("src/boutonndds.png").convert_alpha()
  70. negatif = pygame.image.load("src/boutonnegatif.png").convert_alpha()
  71. contours = pygame.image.load("src/boutoncontour.png").convert_alpha()
  72. seuillage = pygame.image.load("src/boutonseuillage.png").convert_alpha()
  73.  
  74. #On met à 0 les valeur Image et Modif
  75. image = "nul"
  76. modif = "nul"
  77.  
  78. pygame.key.set_repeat(50, 5)
  79. # Boucle principale
  80.  
  81. while continuer : # Tant que continuer = 1 la boucle est effective
  82.  
  83.     #Si image et modif on une valeur on apelle la fonction modify et on les remet à 0
  84.     if (image != "nul" and modif != "nul"):
  85.         modify(modif, image)
  86.         image = "nul"
  87.         modif = "nul"
  88.  
  89.     for event in pygame.event.get(): # Détection d'un évènement
  90.         if event.type == QUIT:
  91.             continuer = 0
  92.  
  93.         #On récupére l'evenement clic gauche de souris
  94.         if event.type == MOUSEBUTTONDOWN:
  95.             if event.button == 1:
  96.                 #on récupére la position du clic
  97.                 pos = event.pos
  98.                 x=pos[0]
  99.                 y=pos[1]
  100.  
  101.                 #On vérifie si la position du clic est sur un bouton si oui on affecte la valeur du bouton a la valeur correspondante
  102.                 if (x > 50 and x < 150 and y > 50 and y < 150 and image == "nul"):
  103.                     image="etretat"
  104.                 elif (x > 175 and x < 275 and y > 50 and y < 150 and image == "nul"):
  105.                     image = "ndds"
  106.                 elif (x > 50 and x < 150 and y > 50 and y < 150 and image != "nul"):
  107.                     modif = "negatif"
  108.                 elif (x > 175 and x < 275 and y > 50 and y < 150 and image != "nul"):
  109.                     modif = "contour"
  110.                 elif ( x > 100 and x < 200 and y > 165 and y < 215 and image != "nul"):
  111.                     modif = "seuillage"
  112.  
  113.  
  114.  
  115. #Affichage
  116.     ecran.fill(couleur_fond) # Remplir la fenêtre avec la couleur de fond
  117.  
  118.     #Si la variable image n'a pas de valeur on affiche les deux boutons de choix d'image
  119.     if (image == "nul"):
  120.         ecran.blit(etretat, (50,50))
  121.         ecran.blit(ndds, (175,50))
  122.  
  123.     #Si la variable image a une valeur on affiche les 3 boutons de choix de la modification
  124.     if (image != "nul"):
  125.         ecran.blit(negatif, (50,50))
  126.         ecran.blit(contours, (175,50))
  127.         ecran.blit(seuillage, (100,165))
  128.     pygame.display.flip() # Rafraîchissement de la fenêtre
  129.  
  130. #Fermeture de la fenêtre pygame
  131. pygame.quit()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement