About three weeks ago, I answered a question on StackOverflow about generating the most readable color of text on a colored background.
I suggested flipping the top bit of each component, (r ^ 0x80, g ^ 0x80, b ^ 0x80). This has the same effect as adding 128 if the component is less than 128, and subtracting 128 otherwise.
Another way to think about it is to imagine the 256x256x256 color cube. Inside that cube, erect another cube half as wide. One corner is at your original color and the diagonally opposite corner is the one computed above.
The questioner liked my answer the best, but I decided to experiment further. I wrote …continue.