Digital Invisible Ink Toolkit
Digital Invisible Ink Toolkit (DIIT) is a Java steganography tool that can hide any sort of file inside a digital image. It outputs 24-bit PNG or BMP files. To extract the data from an image, you must know not only the (optional) password, but also the algorithm (BattleSteg, Dynamic BattleSteg, HideSeek, BlindHide, FilterFirst, Dynamic FilterFirst) and the filter (Laplace, Sobel) used to hide the data in the first place.
The amount of data that can be hidden depends on the settings you choose - but as an example if you hid in the 2 least significant bits then you can hide:
MaxBytes = (image.height() * image.width() * 3 * 2) / 8
i.e. the number of pixels, times the number of colours (3), times the number of bits to hide in, all divided by 8 to get the number of bytes.