Generally speaking, it is not up to you to design and implement your own encryption algorithm. The time period where you could do that and maybe get away with it has long since past. Nowadays, we have standardized cipher algorithms such as AES, which are efficient on modern CPUs and believed to be secure against all currently known attacks.
So basically, your question is/should be, "how do I select an algorithm and generate a key for using it?".
My answer is, unless you can cite a specific reason to not use AES, then AES is probably what you should be using. So now that the algorithm has been selected, you need to find an implementation. This is a language dependent issue and you will have to find an appropriate library for the language your program will be in.
Do not just implement AES yourself (for production use; it's fine for fun). There are some "extra" implementation details that can influence the security of the implementation, and these things may be non obvious to those who don't know what to look for.
Key generation is simple: to generate a key, use the key generation function provided by the library that implements AES, or use the OS urandom/CryptGenRandom functions (for UNIX/Windows). A good library should disallow you from using inappropriate key sizes; For AES, 128, 196, and 256 bits are appropriate key lengths.
If you're on multiple platforms, you may want to find a cross platform crypto library to ease the implementation. An easier implementation can lead to less bugs, which can influence security.
Regarding "I imagine encryption via altering the pixels of the image for cool effects, but that may not be logically efficient" - you're going to want to forget about this idea. After successful encryption, any file data will look like noise/scrambled data - if it does not look this way, then you have a problem.
Lastly, unrelated to the crypto: adding a button to the native camera apps on your phone may be more complicated then writing say, a python script to encrypt the contents of the folder where the images are saved. The latter would not require modification of multiple, different, already compiled apps.
There do exist alternative designs that are both efficient and believed to be secure. If you really do want a different algorithm, this article might be interesting to you. Assuming the alternatives that are suggested are equally secure for practical use, you might implement each and measure which is most efficient for your specific application and platform.