为当前颜色寻找和谐的颜色
我有一种颜色:祸不单行(#aeeb12)或rgb(1742318)。 我需要为这个颜色找两个相似的颜色。 有没有什么数学公式可以编程来做呢? 图片如下:
解决方案
根据您在评论中提供的站点(sessions.edu/color-culator) 您对颜色使用的是类似图案:当您转换RGB颜色HSB/HSV表示法时,我将您重定向到此站点以了解此系统表示颜色的方式http://colorizer.org/。
相似颜色是一个三和弦:Left One MainOne Right One 在HSB表示中,我这样定义主要的一个:[h,S,B]- H色调是度角度
- S饱和度在0和1之间浮动
- B亮度/值在0和1之间浮动
在Java中,如果您使用的是java.awt.color API,则色调是浮点值(介于0和1之间),因此只需将角度除以360.
下面是如何在Java中获得此结果的代码片段:
double anglerotation = 1d / 12; // 30 /360
Color mainColor = new Color(174, 235, 18);
float[] hsbLeftColor = Color.RGBtoHSB(mainColor.getRed(), mainColor.getGreen(), mainColor.getBlue(), null);
hsbLeftColor[0] -= anglerotation;
Color leftColor = new Color(Color.HSBtoRGB(hsbLeftColor[0], hsbLeftColor[1], hsbLeftColor[2]));
float[] hsbRightColor = Color.RGBtoHSB(mainColor.getRed(), mainColor.getGreen(), mainColor.getBlue(), null);
hsbRightColor[0] += anglerotation;
Color rightColor = new Color(Color.HSBtoRGB(hsbRightColor[0], hsbRightColor[1], hsbRightColor[2]));
相关文章