【问题标题】:My RGB to Hex is giving me "-"我的 RGB 到 Hex 给了我“-”
【发布时间】:2015-06-16 12:14:02
【问题描述】:

我正在尝试将我的 RGB 颜色转换为十六进制,当我使用 颜色 = "#%02x%02x%02x" %(r,g,b) 它有时会给我带有“-”的十六进制代码。有没有办法解决这个问题?

【问题讨论】:

  • r/g/b 的哪些值导致了这种情况?
  • 需要更多信息。 什么时候你会得到带有“-”的代码?尝试在您的代码中添加类似if "-" in color: print r, g, b; import pdb; pdb.set_trace(); 的内容,以便更好地了解正在发生的事情。
  • 没有看到代码示例,我们只能猜测原因。也就是说,我能想到的一种情况是r, g, b 中的一个(或多个)是否定的。
  • Blacklight 我认为你是对的,但我不确定它们是如何产生负面影响的。抛出的值是 0 -287 542 0 -213 468 0 -5 260 0 -197 452 0 -81 336 0 -27 282 0 -145 400 0 -90 345 0 -16 271

标签: python colors hex rgb


【解决方案1】:

在这种情况下,这是因为r, g, b 之一是负数:实际上,破折号是一元- 运算符——可能更好地称为负数符号。如果您在格式字符串中添加逗号和空格,这会变得更加清晰:

>>> "#%02x%02x%02x" % (0, -213, 468)
'#00-d51d4'
>>> "%02x, %02x, %02x" % (0, -213, 468)
'00, -d5, 1d4'

除了负数之外,还有大于 255 的数字。请注意,这些也不是有效的 RGB 值。

【讨论】:

    猜你喜欢
    • 2015-06-16
    • 2016-01-01
    • 2011-10-04
    • 2015-09-22
    • 2017-08-04
    • 1970-01-01
    • 2013-03-28
    • 1970-01-01
    • 2021-03-13
    相关资源
    最近更新 更多