Dynamically loaded Image drawn to a canvas in javascript has incorrect (but close) RGB values
To speed up canvas browsers will alpha-premultiply the color values in its buffer.
This is a lossy process so when you do .getImageData
the result will often be "close to but not exactly" what you originally drew on the canvas.