Image messed up when displaying

any idea of why this is happening ?

You are making us to guess what actually should be happening. We don’t know how image should look like. Maybe you wanted to render black and grey triangles at bottom left corner. Then image looks exactly how it is supposed to look.

If you wanted to render something differently, then check the data you are passing to GL - vertex coordinates, texture coordinates, transformation matrix, etc.