Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # programme de traitement d'images "contour"
- #
- #
- #
- # Ce programme est sous licence GPL
- ##############################
- # #
- # Fonctions & procedures #
- # #
- ##############################
- ########################
- # Fonctions générales
- ########################
- #I Fonction binéarisation des octets d'une image
- def bin(n):
- """
- Cette fonction transforme un entier en bits dans un tableau.
- """
- t = int(n)
- tb = [0]*8
- for i in range(7,-1,-1):
- tb[i] = t%2
- t = t//2
- return (tb)
- #II Fonction ouverture du fichier source en mode lecture d'octets
- def ouverture (nomFichier) :
- # ouverture du fichier source en mode lecture d'octets
- fichierTraite = open(nomFichier,'rb')
- print("Nom du Fichier :",fichierTraite)
- TailleFichier = len(fichierTraite.read())
- print ("\nTaille du fichier (en octets) :",TailleFichier, "\n")
- # extraction des dimensions de l'image
- fichierTraite.seek(0,0)
- fichierTraite.readline()
- fichierTraite.readline()
- dimensions = fichierTraite.readline()
- for i in range(len(dimensions)):
- col = chr(dimensions[0])
- i = 1
- while dimensions[i] > 47 and dimensions[i] < 58:
- col = col + chr(dimensions[i])
- i = i + 1
- i = i + 1
- lig = ""
- while dimensions[i] > 47 and dimensions[i] < 58:
- lig =lig + chr(dimensions[i])
- i = i + 1
- col = int(col)
- lig = int(lig)
- print("Largeur",col)
- print("Hauteur",lig)
- fichierTraite.seek(0,0)
- entete = fichierTraite.readline() + fichierTraite.readline() + fichierTraite.readline() + fichierTraite.readline()
- # lecture des donnees du fichier source
- donnees = [i for i in fichierTraite.read()]
- print("Longueur du fichier donnees : ",len(donnees),"\n")
- return(donnees,entete,col,lig)
- ########################
- # #
- # Programme principal #
- # Décodage #
- # #
- ########################
- nomFichierDestination = "/Users/Badr-Eddine_SAHLA/Desktop/Informatique Science Numérique/Image/Image Nouveau Format/ESSAIE1/Stéganographie.ppm"
- nomFichierCachee = "/Users/Badr-Eddine_SAHLA/Desktop/Informatique Science Numérique/Image/Image Nouveau Format/ESSAIE1/ImageCachée.ppm"
- FichierCachee = open(nomFichierCachee,'wb')
- donnees3,entete3,col3,lig3 = ouverture(nomFichierDestination)
- FichierDestination = open(nomFichierDestination,'rb')
- FichierDestination.seek(0,0)
- ligne1 = FichierDestination.readline()
- ligne2a = FichierDestination.readline()
- ligne3 = FichierDestination.readline()
- ligne4 = FichierDestination.readline()
- ligne3b = "90".encode() + " ".encode() + "320".encode() + "\n".encode()
- enteteCachee = ligne1 + ligne2a + ligne3b + ligne4
- print(enteteCachee)
- FichierCachee.write(enteteCachee)
- k = 0
- for i in range(0,len(donnees3),8):
- entier = 0
- liste = []
- for j in range(1,8) :
- data = donnees3[k]
- if data%2 == 0 :
- k+=1
- liste.append(0)
- if data%2 == 1:
- liste.append(1)
- k+=1
- v = 0
- for w in liste:
- v+=1
- if w*1==1 :
- entier= entier + 2**v
- t = (entier).to_bytes(1, byteorder='big')
- FichierCachee.write(t)
- FichierCachee.close()
- for w in liste:
- entier= entier + 2^v
- v+=1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement