Contrast mostly. If you have a picture with not much constrast, all the camera has to record is a bunch of similarly (or identically) colored pixels. Add a lot of contrast and color, and the camera has much more to record. It's digital, so it's just 1's and 0's, and it takes more of them to record more color/contrast. And the more 1's and 0's it takes, the larger your file will be. When you're talking about 7 million pixels, it's normal to have that sort of variation in file size.
I have a camera. It takes pictures.