transparent background & better labels position

Partially rewritten to handle transparent background (defining
background color is currently not optional); labels are better
positioned.
Tested only on cairoCanvas.