How do I get raw texture RGBA in my shader

I am working on a texture splatting shader that can be used for multi texture tiled terrains. Thus far I have one base texture and three different tiles using the R, G and B channels of the splatting map.

I wanted to use the alpha channel to add a fourth tile to be happily splat around. But it turns out that the alpha channel is influencing the other channels when read them in the fragment shader code.

In this demo, Tile painter, the blend map is a canvas object on which I paint blending information to the R, G and B channels. I manipulate pixels using ImageData, so the canvas drawing mechanism is not interfering with this. I found that I need to set the Alpha for each pixel to take effect in the shader.

What I would like is to use every byte channel of the blend map - R, G, B and A - as blend information. So I need to get every channel in it’s raw form. Not premultiplied or whatever operation is performed on them before I get them. And I do not want to turn off premultiplying for the entire render engine (which does not seem to work anyway).

So how do I get raw bitmap data into my shader, and how do I use it?