如何将RGB格式的颜色转换为Hex格式,反之亦然?
例如,转换'#0080C0'为(0, 128, 192).
我正在寻找某种公式或算法来确定给定RGB值的颜色的亮度.我知道它不能像将RGB值一起添加并且具有更高的总和更简单一样简单,但我有点不知道从哪里开始.
我想展示一些像这个例子的图像
填充颜色由数据库中的字段决定,颜色为十六进制(例如:ClassX - >颜色:#66FFFF).现在,我想用所选颜色显示填充上方的数据(如上图所示),但我需要知道颜色是暗还是浅,所以我知道这些单词应该是白色还是黑色.有办法吗?TKS
我正在绘制一个颜色选择按钮,我正在寻找一个漂亮而简单的公式,以获得RGB中给定背景颜色的良好文本颜色(前景).
一个简单的尝试就是采用补色,但这会产生奇怪的按钮,用于纯蓝色或纯红色等颜色.
有没有众所周知的事情呢?
如果它很重要,我正在使用QT.
比如计算rgb组件的平均值然后决定是使用黑色还是白色?
我是否必须在第一步将RGB转换为HSV,因为RGB并不总是人眼看到的?
我正在使用C#
我想知道,如果有任何算法可以通过其背景颜色确定最佳字体颜色的可读性.
例如:我创建了一个包含动态文本和颜色的图标.如果颜色有点暗,我希望它将字体颜色设置为白色,如果颜色相当明亮,我希望它是黑色(或者甚至是灰色).
public DynamicIcon( String iconText, Color backgroundColor )
{
this.iconText = iconText;
this.backgroundColor = backgroundColor;
this.fontColor = determineFontColor( backgroundColor );
}
//This is what I need (Pseudocode):
private fontColor determineFontColor( Color backgroundColor )
{
if( backgroundColor == bright )
return Color.BLACK;
if( backgroundColor == dark )
return Color.WHITE;
//If possible:
if( backgroundColor == somethingInBetween )
return Color.GRAYISH;
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,我没有找到任何类似的算法,尽管我很确定,它已经存在了.有人有什么想法吗?
谢谢,ymene