
There are various noteworthy things on this image.
First, it seems quite obvious to me that the colors in the image, (not the dress itself), are light blue and a brownish gold. Dispite this fact, my brain automatically and instinctively interprets the original colors as being white and gold, considering the backlighting and my previous experiences with bad quality photos, in which many times colors can become altered, especially with white no longer being white.
The problem is this is a matter of each person's brain's interpretation, which can vary, even in the same person, at different times, possibly depending on the lighting of the area where the image is viewed.
Second thing to note is that aestetically, light blue with brownish gold makes no sence, while white and gold does, (even though the dress is hideous, in my opinion), and white is a common color in clothing, especially shiny coated clothing like the coat over the dress. Also, aestetically i thing it is much more probable to see such a coat in white, not light blue or any other blue.
Now, i can't see the gold as looking like black, if it did, and the blue was a dark one, then the dress would make more sence.
Lastly i just want to point out that just because the color in the image is blue, which can be proven in software that picks up colors, like loftar did, it doesn't necessarily prove anything when it comes to irl color of the dress.
Edit: also, one possible explanation for the darkening of the white is the background strong lightsource. Since the background light is so strong, the whites in the image are necessarily going to be put there by the sofware of the camera, and the normal whites that aren't so strong, like the white on the dress, will necessarily be a of a darker hue, which due to the camera's poor quality will be limited to specific tones, like the weird light bluish one here, not being able to express all the hues present irl. TL;DR: it is a camera contrast problem.