Extracting messages hidden in LSB
This recipe will allow us to extract messages hidden in images by using the LSB technique from the preceding recipe.
How to do it…
As seen in the previous recipe, we used the LSB of the Red
value of an RGB pixel to hide a black or white pixel from an image that we wanted to hide. This recipe will reverse that process to pull the hidden black and white image out of the carrier image. Let's take a look at the function that will do this:
#!/usr/bin/env python from PIL import Image def ExtractMessage(carrier, outfile): c_image = Image.open(carrier) out = Image.new('L', c_image.size) width, height = c_image.size new_array = [] for h in range(height): for w in range(width): ip = c_image.getpixel((w,h)) if ip[0] & 1 == 0: new_array.append(0) else: new_array.append(255) out.putdata(new_array) out.save(outfile) print "Message...