Steganography provides methods for concealing secret information from third parties. The principle is to embed a secret message in an apparently innocent file such as video or audio, called the cover medium. Ideally, an eavesdropper should not even suspect that a subliminal message is being conveyed by the cover medium. In contrast, in cryptography the secret message is "scrambled" in some form before it is sent out in the open. Although hard to "unscramble" the encrypted message, any eavesdropper becomes aware that some type of secret communication is taking place. There are four types of steganography, according to the cover medium type: Text steganography, image steganography, audio steganography, and video steganography. This work focuses on image steganography, which is considered the most attractive type due its efficiency and effectiveness. The proposed method consists in intersecting the bit planes of the original image with geometric objects and then finding the intersection points. The original message is stored at those intersection points, resulting in a stego-image. This method differs from known techniques where the bits are inserted in fixed positions, for example, in the least significant bit of a pixel. To enhance the security, I have combined steganography with cryptography, that is, the secret message is first encrypted using the Advanced Encryption Algorithm (AES) and then embedded in the cover image. The two different geometric objects that I use are the cylinder and the tetrahedron. I have implemented the technique in both Matlab and Google Android.