python中颜色表示符_Python中十六进制颜色的字符串格式

我从PHP修改了一个函数来返回颜色渐变(http://www.herethere.net/~samson/php/color_gradient/color_gradient_generator.php.txt). 返回以0结尾的彩色十六进制代码时遇到问题。此函数为:def _get_color(current_step=0, start='000000', end='ffffff', max_steps=16):

'''

Returns the color code for current_step between start and end

'''

start = '{0:#x}'.format(int(start, 16))

end = '{0:#x}'.format(int(end, 16))

if int(max_steps) > 0 & int(max_steps) < 256:

max_steps = max_steps

else:

max_steps = 16

r0 = (int(start, 16) & 0xff0000) >> 16

g0 = (int(start, 16) & 0x00ff00) >> 8

b0 = (int(start, 16) & 0x0000ff) >> 0

r1 = (int(end, 16) & 0xff0000) >> 16

g1 = (int(end, 16) & 0x00ff00) >> 8

b1 = (int(end, 16) & 0x0000ff) >> 0

if r0 < r1:

r = int(((r1-r0)*(float(current_step)/float(max_steps)))+r0)

else:

r = int(((r0-r1)*(1-(float(current_step)/float(max_steps))))+r1)

if g0 < g1:

g = int(((g1-g0)*(float(current_step)/float(max_steps)))+g0)

else:

g = int(((g0-g1)*(1-(float(current_step)/float(max_steps))))+g1)

if b0 < b1:

b = int(((b1-b0)*(float(current_step)/float(max_steps)))+b0)

else:

b = int(((b0-b1)*(1-(float(current_step)/float(max_steps))))+b1)

return '{0:#x}'.format(((((r << 8) | g) << 8) | b))

当我以黑色的#000000运行循环时,我只返回0。第二个代码f0f0f也缺少0。在

^{pr2}$

注意前两个十六进制代码。对如何正确格式化返回值返回000000有什么想法?在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值