if I understand well the uFlags parameter always assume that each uflag bit holds 1 byte. In your documentation you make an example of processing R,G,B channels using 1 | 2 | 4 flags. Is it me or I cannot understand why? Let's take a 24 bits image 3 channels (R,G,B) 1 byte per channel. I would expect the flags to be 0| 1| 2 can you explain why is it not like this. I can't seem to graps the logic behind.
You write in your documentation also: "If bit N is set, channel N is processed. If bit N is not set, channel N is skipped"