TGA is not necessarily raw. It can also have RLE.

And yes, BMP has the origin at the TOP left, but OpenGL at the BOTTOM left. Therefore, with your method, a BMP screenshot is upside down and you do need to encode it. Believe me, I've tried it out not two hours ago.