The result after adding colors = to the heights. 800x800 heightmap created with gimp and render clouds function.

Edit: I put a picture up and I fixed a issue in the drawing steps... I add index.size()*sizeof(unsigned int)... I'm pretty sure it should just be index.size() since the next parameter is the type. When I make a smaller heightmap it takes the end triangles and stretches them across the whole map.

I'm till trying to create this heightmap into a VBO and display it and after some advice I'm trying to display it using glDrawElements. It seems to be drawing triangles across the map from one end to the other similar to my GL_TRIANGLE STRIP issue I was having but I've printed out the data and it's format is exactly what I need..
0, height, 0,
1, height, 0,
2, height, 0, ...so on till it hits image->width then
0, height, 1,
1, height, 1,
2, height, 1,.... repeats till image->height and image->width...

also when I test the index it's format it like... (image width and height are both 800)
0, 800, 1,
1, 800, 801,