#!/usr/bin/env python
#--*--coding:UTF-8 --*--

import Image
im = Image.open("../images/sonic.gif")
#recuperamos las dimensiones de la imagen
w,h=im.size
#descomponemos la imagen en tres (rojo verde azul)
r,g,b=im.split()
#transformamos la imagen
r=list(r.getdata())

#el mensaje a cifrar
c="Python está muy bien"
#registramos el largo de la cadena y la convertimos a binario
u=len(c)
v=bin(len(c))[2:].rjust(8,"0")
#tranformamos la cadena en una lista de 0 y de 1
ascii=[bin(ord(x))[2:].rjust(8,"0") for x in c]
#transformación de la lista en cadena
a=''.join(ascii)
#codificamos el largo de la lista en los 8 primeros píxeles rojos
for j in range(8):
    r[j]=2*int(r[j]//2)+int(v[j])

#codificamos la cadena en los píxeles siguientes
for i in range(8*u):
    r[i+8]=2*int(r[i+8]//2)+int(a[i])
#creamos la imagen roja
nr = Image.new("L",(16*p,16*q))
nr = Image.new("L",(w,h))
nr.putdata(r)
#fusionamos las tres nuevas imágenes
imgnew = Image.merge('RGB',(nr,g,b)) 
imgnew.save("sony_crypt.png") 
