This feels a bit crazy since the package is part of `skimage`.  How about `from skimage.dtype_util import `img_as_ubyte`.

Do you think it's more intuitive to work in [0, 255] for color values?  How about doing everything in [0, 1] floats?  This allows quite a bit more flexibility when doing, e.g., fading of a block (users can simply use `np.linspace(0, 1, 200000)` instead of having to worry about what happens to the integers).