to see how it should look when drawn correctly use "type = ARGB32" and RGB24 for black's allocimage(). see attached. the alpha blending still works because when downgrading from ARGB32->RGB24 (for drawing onto "black") the library still takes the source color from black without issues. the bugs appear when 32-bit channels are being used for source and destination.