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 27 28 29 30 31 32 33 34 35 36 37 38 39 40
   | from PIL import Image
import re
import json
import struct
 
 
im = Image.open("test.png")
 
#on récupère les dimensions de l'image
w,h=im.size
 
#On éclate l'image en trois (rouge vert bleu)
r,g,b,a=im.split()
 
#on transforme l'image en liste
r=list(r.getdata())
 
#le message à  coder
c="Adresse mail du client"
#on note la longueur de la chaine et on la transforme en binaire
u=len(c)
v=bin(len(c))[2:].rjust(8,"0")
 
#on transforme la chaine en une liste de 0 et de 1 
ascii=[bin(ord(x))[2:].rjust(8,"0") for x in c]
 
#transformation de la liste en chaine
a=''.join(ascii)
 
#on code la longueur de la liste dans les 8 premiers pixels rouges
for j in range(8):
    r[j]=2*int(r[j]//2)+int(v[j])
 
#on code la chaine dans les pixels suivants
for i in range(8*u):
    r[i+8]=2*int(r[i+8]//2)+int(a[i])
 
#on recrée l'image rouge 
nr = Image.new("L",(16*u,16*u))
nr = Image.new("L",(w,h)) | 
Partager