Sub ParseHexColor (s As String) As Int
s = s.Replace("#", "").Replace("0x", "")
If s.length = 6 Then
Return Bit.Or(0xff000000, Bit.ParseInt(s, 16))
Else If s.Length = 8 Then
Return Bit.Or(Bit.ShiftLeft(Bit.ParseInt(s.SubString2(0, 2), 16), 24), Bit.ParseInt(s.SubString(2), 16))
End If
Log("Invalid color: " & s)
Return 0
End Sub