我需要生成一种随机背景色,这种背景色在视觉上符合三种文本颜色:ARGB(255,255,255,255)
,ARGB(63,255,255,255)
和ARGB(255,0,0,0)
。颜色是白色的,白色为0.25不透明度,黑色。我还没有在SO或其他地方看到一个比较颜色和多种颜色的例子来决定它们之间是否有良好的对比(比较仅在两种颜色之间完成)。我不完全了解色彩理论,所以我在寻求帮助。多种前景色的随机背景色
0
A
回答
0
首先,您需要熟悉色彩空间并决定使随机色彩在视觉上吸引人的地方。颜色基本上可以表示为three components in many different spaces。计算机的首选代表是RGB,红色,绿色和蓝色的数量与颜色相符。然而,对于人眼而言,HSV(色调,饱和度,值)可能更容易理解。在该颜色空间中,饱和度表示颜色是如何“饱和”的,即灰度范围的饱和度为零,因为它实际上不表示颜色。价值(或强度)认为它的亮度和色调类型可以让你知道颜色属于哪个方向的光谱(想象一下彩虹)。 alpha值不是颜色本身的一部分,而是指定特定颜色如何与背景混合(即,生成的颜色是通过其前景色的alpha分量和背景色计算的加权和)
现在在选择一个更复杂的视觉上吸引人的颜色方面,更多地取决于每个人的口味。通常您可以通过选择HSV颜色空间中距离足够大的另一种颜色来获得高对比度颜色。事实上,选择具有相同颜色(例如相同饱和度和强度)但颜色差异很大的颜色会给您一种与原始颜色形成高对比度的颜色。从RGB到HSV和反之亦然的转换公式可以在here找到。希望这可以帮助。
0
与白色对比的颜色是黑暗的。另一方面,与黑色对比的颜色是任何黑暗的。所以很难选择白色和黑色的对比色。
它可能是一些平均灰色或任何其他颜色具有相同的亮度。
亮度可以用公式来计算:
int brightness = (int)(0.30 * red + 0.59 * green + 0.11 * blue);
让固定brightness
值进行平均(即128),然后随机选择red
和值。然后,我们可以计算出blue
:
var random = new Random();
var red = random.Next(256);
var green = random.Next(256);
var blue = (int)(128 - 0.30 * red - 0.59 * green);
产生的颜色是相当的对比黑色和白色两种。
相关问题
- 1. 随机颜色背景
- 2. 多种背景颜色Fabricjs
- 3. jQuery的:随机背景颜色
- 4. MonoTouch的随机背景颜色
- 5. 阵列的随机背景颜色 - PHP
- 6. 随机彩色背景的问题
- 7. 随机背景颜色变化
- 8. 只有css的多种背景颜色
- 9. 带有多种背景颜色的Cardview
- 10. 多色背景Plotly
- 11. 如何根据前景色和背景色计算第三种颜色?
- 12. 两种颜色背景
- 13. Jquery滑块与多种背景颜色
- 14. QPalette具有多种颜色背景
- 15. 多种背景颜色相互重叠
- 16. CSS3PIE背景褪色背景颜色
- 17. 根据背景制作前景色黑色或白色
- 18. JQuery随机背景颜色和颜色,在2 div的
- 19. 背景或背景颜色?
- 20. 更改终端背景和前景色
- 21. 终端背景和前景色
- 22. 基于背景更改TextBlock前景色
- 23. 手机导航背景色
- 24. Textfield背景色白色,活动灰色背景色
- 25. 背景颜色50%一种颜色和50%另一种颜色
- 26. 如何设置JXBrowser默认的前景色和背景色?
- 27. 如何修改OpenXML TableCell的前景色和背景色?
- 28. vim:colorcolumn的反转前景色和背景色
- 29. 背景颜色
- 30. 白色背景()
我建议随机挑选并测量距离。 – Jasen
试试看这里:http://24ways.org/2010/calculating-color-contrast/ – Icemanind