Nsi txt decoder
Fiche : Nsi txt decoder. Recherche parmi 301 000+ dissertationsPar Elz97 • 28 Avril 2021 • Fiche • 1 084 Mots (5 Pages) • 641 Vues
# -*- coding: utf-8 -*-
from PIL.Image import *
image = open("") #défini l'image afficher a la fin
#image.show()
imagecache = open("") #défini l'image qui sera caché
#imagecache.show()
def image_origine(image,imagecache):
'''Cette fonction prend une image qu'on appellera origine qui sera l'image affichée et une autre image qui sera cachée
dans l'image origine. Le but de cette fonction est de cacher une image dans l'autre et de renvoyer la nouvelle image'''
(l,h) = image.size
for y in range(0,h): #parcour les pixels en hauteur
for x in range(0,l): #parcour les pixels en largeur
pixori = image.getpixel((x,y)) #prend le pixel de coordonnées(x,y) de l'image d'origine
pixcache = imagecache.getpixel((x,y)) #prend le pixel de coordonnées(x,y) de l'image cachée
coulpix = couleure(pixcache,pixori) #donnera la nouvelle valeur du pixel pour voir l'image origine avec des valeur de l'image cachée
image.putpixel((x,y),coulpix) #remplace l'ancien pixel par le nouveau
return image #renvoi la nouvelle image
def couleure(cache,origine):
'''Cette fonction demande les valeurs RGB des pixels de l'image origine et de l'image cachée et renvoi un tuple contenant
les nouvelle valeurs RGB des 2 images combinées'''
coul = [0,0,0] #crée la variable coul : une liste vide
for j in range(0,3): #répète pour j de 0 à 3
bitcache = premier3Bitscache(cache[j]) #appelle la fonction premier3bitscache pour obtenir les 3 premiers bits de cache[j]
bitorigine = premier5Bitsorigine(origine[j]) #appelle la fonction premier5bitsorigine pour obtenir les 5 premiers bits de origine[j]
coul[j] = concat_cache_origine(bitcache, bitorigine) #additionne les valeurs des 5 et 3 bits obtenu précédement
return (coul[0],coul[1],coul[2]) #renvoi les nouvelle valeurs des couleurs sous forme de tuple
#cache = (95,95,20)
#origine = (122,50,48)
def premier3Bitscache(n):
'''Cette fonction va demander la valeur de la couleur R,G ou B du pixel de l'image cachée pour prendre
seulement les 3 première valeurs binaires de la couleur'''
n = format(n,'08b') #renvoi n en valeur binaire sur 8bit
cache = n[0:3] #cache est égal au 3 derière valeurs de n
return cache #renvoie les 3 denières valeurs
#print(premier3Bitscache(11011001))
def premier5Bitsorigine(n):
'''Cette fonction va demander la valeur de la couleur R,G ou B du pixel de l'image d'origine pour prendre
seulement les 5 première valeurs binaires de la couleur'''
n = format(n,'08b') #renvoi n en valeur binaire sur 8bit
origine = n[0:5] #cache est égal au 3 derière valeurs de n
return origine #renvoie les 3 denières valeurs
#print(premier5Bitsorigine(11011001))
def concat_cache_origine(cache,origine):
...