gpt4 book ai didi

colors - 给定灰度值,什么颜色提供最高的视觉对比度?

转载 作者:行者123 更新时间:2023-12-02 04:16:53 25 4
gpt4 key购买 nike

假设我有一个灰色图像,并且我想绘制例如上面有文字。现在图像有一些黑暗区域和一些明亮区域。因此,如果我为每个字符选择一种单独的颜色,我该如何计算这种颜色以获得文本的最高对比度?

一个务实的方法是使用黄色。 (我不知道为什么,但它经常用于电影和纪录片的字幕)此外,我可以使明亮背景区域中的黄色变暗,并在黑暗背景区域中突出显示它。但这可能会提供一些图层效果。

我知道色彩空间可能很重要。我从 RGB 灰度值开始,但 LAB、HSV 或 HSL 可能更适合计算最佳颜色。

编辑:因为有一个有用的用例的问题:我真的不想用不同的颜色绘制文本字母。它是关于灰色纹理背景上特定字形的颜色选择。 (例如 MR 图像。)

最佳答案

您问题的最简单答案是最大化背景和文本颜色之间的距离。

如果转换为 HSL,则可以通过最大化 L 之间的距离(HSV 中的 V)来实现此目的。所需要的只是当背景亮度小于 50% 时选择白色,否则选择黑色。这是一个示例:http://jsfiddle.net/E2kU4/

if(bgLightness < 50){
color = "white";
}else{
color = "black";
}

我认为这基本上解决了这个问题,但还有其他几点:

我不确定这个的用例是什么。具有不同颜色字符的单词可能看起来很糟糕。通常,字幕会选择单一颜色以保持一致性。

由于其饱和度,黄色确实在黑白图像中脱颖而出。此外(我不确定如何准确地用语言表达),与具有相似亮度的其他颜色相比,黄色具有非常高的色度。 HUSL 上得到了最好的证明。页;顺便说一句,HUSL 是一个用于创建可读颜色的出色库。

黄色很容易与深色形成对比,因为它很浅。它也不会与浅色形成对比,但这通常可以通过在字幕中添加阴影/轮廓来解决。另一个例子:http://jsfiddle.net/E2kU4/1/

但是您可以对黑白示例应用相同的技术(应用阴影或轮廓)以获得最大对比度。现在,轮廓与文本具有最大对比度。轮廓也会从背景中脱颖而出,除非这些颜色相似,在这种情况下对比度已经非常高(例如近黑色背景、黑色轮廓、白色文本)http://jsfiddle.net/E2kU4/2/

最后,HSL/RGB 之间的转换应该很简单。有很多库可以做到这一点。

关于colors - 给定灰度值,什么颜色提供最高的视觉对比度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19520605/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com