如何划分#000000
- #ffffff
间隔介绍 x 相等的部分,以获得 x 灰色?这可能吗?
编辑:
进一步来说:
我希望“划分”#000000
- #ffffff
颜色范围,如下所示:
在此列表中有12种颜色。 (查看sgi灰色here。)
但是如果我不想要12种颜色呢?怎么计算它们? 我希望你现在了解我:)。
答案 0 :(得分:3)
#000000实际上是RGB,R =#00,G =#00,B =#00
R = G = B时会出现灰色。
#00 - #FF为您留下了256种可能的组合,所以如果您想排除白色和黑色(#000000和#FFFFFF),请尝试以下方法:
step = 256 / (x + 2)
因此,如果您想要获得4个灰色,则步骤将解析为
step = 256 / (4+2) = 256 / 6 = 43
将其从十进制转换为十六进制:
step_16 = 43_16 = #2B
现在的颜色是:
#2B2B2B
#565656
#818181
...
答案 1 :(得分:2)
是的,有可能,只需将x
除以255,然后就可以了。
Ruby中的生成器:
def gray_generator(steps)
step = 255/steps
ret = []
steps.times { |i| ret << (step*i).to_s(16) * 3 }
return ret
end
答案 2 :(得分:1)
实际上你只需要在x部分中除以255(DEC)。然后,您将这些数字传递给十六进制数字,让我们调用其中一个数字0xC4。最后,你必须这样做:
.whatever { background-color: #C4C4C4; }
就是这样。
答案 3 :(得分:1)
只要所有三个值(RGB)相等,它们就是灰色
答案 4 :(得分:1)
如果您需要#000000(黑色)到#ffffff(白色)范围内的X灰色,则需要将255 /(x-1)除以并将结果用作Reg,Green和Blue的步长值。要在java中执行此操作:
int x = 12;
for (int i = 0; i < x; i++) {
int c = (int) Math.round(i*255.0/(x-1));
System.out.printf("%d. #%02x%02x%02x\n", i, c, c, c);
}
请注意,您必须将i乘以(255.0 /(x-1)),然后每次将其四舍五入为整数,以获得每一步的最接近的灰色。
以上产品(这是您在编辑后要求的):
0. #000000
1. #171717
2. #2e2e2e
3. #464646
4. #5d5d5d
5. #747474
6. #8b8b8b
7. #a2a2a2
8. #b9b9b9
9. #d1d1d1
10. #e8e8e8
11. #ffffff