fix empty draw bug, add hsl to rgb conversion function