You may also like to look at
Stegano, hiding a secret image within an image.
Another way of hiding a message in an image is to use the pixel data that is 'fully transparent' in say PNG images. Transparency has color and thus color values, that many image formats save, but which can be hidden by the transparency. The text can be in the clear, written in one or more color channels, and hidden from normal view by the images transparency.
Many image formats also have meta-data, comments, labels, and profiles that could contain messages and other information. Even the GIF image format could have added profiles or extra data that most image programs will just ignore.
And finally if the image itself does not need to appear valid, you can encrypt the image data, and even hide the encryption key, or a key to generating the encryption key as part of the images meta-data.
See
Encrypting Image Data however this may require your image magick to be configured with a
--enable-cipher flag