To load: Get the pixel data from the image (Depending on what library you’re using the method to get the data this will differ, though not too considerably), then you iterate through each pixel and get the color data from it. From there, you should be able to take information out of that value (Either by using a set of if statements, a switch, maybe even using several arrays filled with the corresponding data you need, etc.)
To edit/paint: This is more complicated. If you’re using Paint.net (Which I’ve used for a simplified version of this) then you just have to be very specific about how you fill in the values of the color (Use the ‘More >>’ to be able to pick a specific color value). Then you just fill in the specific pixel with that data. The main issue is that if you’re using each color channel (including Alpha) to mean something different you have to get that color (Using the eye drop) edit it using the color panel, then refill it in.
For anything complicated, attempting to draw it all using Paint.net is probably going to be more difficult to keep straight than writing your own tile editor system (Even if it outputs data in the form of an image).
For other information about doing this: This post is about the same thing and so is this thread.