Yes, but I'd like to optimise for speed a bit later in the project.  For example, read can allow for 4 pixels (or more) to be read at once to reduce the call overhead, or some inlining may help.
The bitstream module will make it very easy to add compression (Run Length Encoding initially) to the bitmaps since the upper layer won't need to know anything about it.