On a not unrelated note, I've been trying to make a 3D map viewer that loads height values from a black/grey/white image. I've been making it a surface, and using surface.get_at() for each pixel. I think surfarray should do it better, though I've never used it.