^^ Just started reading about OpenGL and that's(/maybe was at some point) and issue... So what's up with that?
By default all OpenGL implementations require 2^N sized images (not necessarily square though). There is an extension you can check for though which allows for arbitrary sized textures - ARB_texture_non_power_of_two.
Cas :)
Just a word of caution: be careful with that extension. I've had some drivers (Intel!!!!!!) come up saying that they support it when they actually don't.