Very nice pic.
This is most likely due to color management. What color space are you saving out at? Anything other than sRGB and chances are it will render incorrectly in your browser.
The issue is this, for 8 bit spaces, each channel can contain a value of 0 through 255. So if for a given pixel the red channel is 255, and the green and blue channels are 0, that pixel is red. No problem so far. The question is, how red is that red? 255,0,0 in sRGB is a different red that 255,0,0 in Adobe RGB. The sRGB gamut is pretty small, it was designed do that the vast majority of monitors and printers could reliably reproduce the whole range of colors in the sRGB gamut. So sRGB's pure red, 255,0,0, is not as red as say Adobe RGB's red. There are more colors in the Adobe RGB color space, so the most red you can have in sRGB space (255,0,0) is mapped to 245,0,0 in Adobe RGB space, leaving room for more red reds.
In color managed images, they carry a little tag which tells a color managed application which color space it use to render the image. If you were working in something like Lightroom or Photoshop, their default behavior is to work in a color space which is not sRGB. If you export out of a color managed application without setting the output to sRGB, you will see it render incorrectly in a non color managed application (Internet Explorer, Firefox, etc.), while looking OK in a color managed app.
----
Couldn't find the resource that I wanted about color management, but this one isn't bad: