为当前颜色寻找和谐的颜色 [英] searching harmonious colors for current color

查看:65
本文介绍了为当前颜色寻找和谐的颜色的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一种颜色:祸不单行(#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之间浮动
如果定义为:[H-30,S,B] 和right One如果定义为:[H+30,S,B]

在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]));

这篇关于为当前颜色寻找和谐的颜色的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆