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