File talk:StenographyOriginal.png

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia
  • I have tried decomposing this image and see no hidden image underneath. In GIMP I set RGB to 2/100 in each channel, and increased the brightness of the image until it was evident there was no stenograph. What am I doing wrong? Is this not the same image described?

Cranraspberry (talk) 04:21, 24 April 2009 (UTC)[reply]

The steps needed to reproduce this (on linux) follow (a friend just asked me how ;).

Download StegnographyOriginal.png
wget http://upload.wikimedia.org/wikipedia/commons/4/4e/StenographyOriginal.png
Convert it into BMP using imagemagick
convert StenographyOriginal.png SO.bmp
Now load up python, and do some bit manipulation:
>>> f = open("SO.bmp", "r")     # Open the file
>>> b = "".join(x for x in f)   # Read the file into a binary string
>>> [ord(x) for x in b[10:14]]  # Find the end of the header (see [[BMP]] for details)
[54, 0, 0, 0]
>>> h = b[:54]                  # h is now the BMP header
>>> t = b[54:]                  # t is now the BMP data
>>> k = [ord(x) & 3 for x in t] # k is now an array of the image data for the "nearly black" image
>>> j = [chr(x*80) for x in k]  # j is now an array of the bytes for the cat image
>>> g = open("cat.bmp", "w")    # open a new image for writing
>>> g.write(h)                  # old header should be alright, it's still going to have similar properties
>>> g.write("".join(j))         # write the new data
>>> exit()
(Optional) Convert it back to a png
convert cat.bmp cat.png

Hope this is useful - there may be a nicer way of doing it for GUI people, but I dunno. Conrad.Irwin (on wikt) 19:05, 26 May 2009 (UTC)[reply]

Decoding with PhotoShop[edit]

I have attempted to decode this steganographic image with PhotoShop. No luck. I would think you could do it with the following steps:

- Brighten image until all but the two LS bits of the image are clipped to white. - Darken to a medium gray. - Increase contrast to bring out image.

(The Equalize command might even do the last two steps automatically.)

When I do these steps, I find no hidden image. Does the PNG perhaps store the image with a channel depth of greater than 8 bits? If so, then the example really is not fair; Screens are displayed with a 8 bit channel depth. If the steg image is displayed in bits beyond those eight, they will be simply discarded by hardware. RastaKins (talk) 19:23, 2 August 2010 (UTC)[reply]

Not "fair"? That's the point of steganography — the hidden image should remain hidden unless one has the requisite tools and knowledge to extract it. If most standard hardware is incapable of displaying the information without some low-level bit diddling pre-processing, then so much the better.—QuicksilverT @ 23:53, 31 January 2011 (UTC)[reply]