문제

나는 이것을 물어볼 방법을 잘 모르겠지만 여기에 간다.

화면에 채워진 컬러 사각형을 그립니다. 색상은 R, G, B의 형태입니다.

그런 다음 사각형 위에 텍스트를 그려고 싶지만 텍스트의 색상은 가장 좋은 대비를 제공하는 것이어야합니다.

예시:

검은 사각형을 그리면 텍스트의 명백한 색상이 흰색입니다.

내가 지금 시도한 것은 이것입니다. 이 기능을 사각형의 색상을 통과시키고 텍스트에 사용하는 거꾸로 된 색상을 반환합니다.

작동하지만 최선의 방법은 아닙니다.

제안이 있습니까?

// eg. usage: Color textColor = GetInverseLuminance(rectColor);
private Color GetInverseLuminance(Color color)
{
    int greyscale = (int)(255 - ((color.R * 0.30f) + (color.G * 0.59f) + (color.B * 0.11f)));

    return Color.FromArgb(greyscale, greyscale, greyscale);
}
도움이 되었습니까?

해결책

상당히 다른 색상을 제공하는 간단한 접근법 중 하나는 RGB 트리플의 각 구성 요소의 상단 비트를 전환하는 것입니다.

Color inverse(Color c)
{
    return new Color(c.R ^ 0x80, c.G ^ 0x80, c.B ^ 0x80);
}

원래 색상이 #1AF283 인 경우 "역"은 #9A7203입니다.

대비가 중요합니다. 나는 미학에 대해 보장하지 않습니다.

업데이트, 2009/4/3 : 나는 이것과 다른 계획을 실험했다. 결과 내 블로그.

다른 팁

가장 읽기 쉬운 색상은 흰색 또는 검은 색입니다. 가장 '진정시키는'색상은 흰색이나 검은 색이 아닌 것이며, 배경색을 가볍게 대조하는 색상이 될 것입니다. 주관적이기 때문에 프로그래밍 방식으로 할 수있는 방법이 없습니다. 모든 사람이 다르게 볼 수 있기 때문에 모든 사람에게 가장 읽기 쉬운 색상을 찾지 못할 것입니다.

텍스트와 같은 전경 및 배경 병치에 관한 색상에 대한 몇 가지 팁.

인간의 눈은 본질적으로 간단한 렌즈이므로 한 번에 한 가지 색상에 효과적으로 집중할 수 있습니다. 대부분의 최신 카메라에 사용되는 렌즈는 다른 굴절률 (색채 렌즈)의 여러 렌즈를 사용 하여이 문제를 해결하여 모든 색상이 한 번에 초점을 맞추지 만 인간의 눈은 그다지 발전하지는 않습니다.

이러한 이유로 사용자는 텍스트를 읽으려면 한 번에 한 가지 색상에만 집중하면됩니다. 이것은 그것을 의미합니다 전경은 색상이거나 배경이지만 결코 둘 다입니다. 이것은 일반적으로 진동이라고 불리는 상태로 이어지는데, 이는 눈이 전경과 배경색 사이의 초점을 빠르게 이동하여 모양을 해결하려고 노력하지만 결코 해결되지 않으며 모양이 초점이 맞지 않으며 눈에 스트레인으로 이어집니다.

당신의 기능은 작동하지 않습니다 RGB (127,127,127)를 제공하는 경우 정확히 같은 색상을 반환하기 때문입니다. (검은 색이나 흰색을 반환하도록 기능을 수정하면 사물이 약간 향상됩니다)

항상 읽을 수있는 것들을 갖는 가장 좋은 방법은 주위에 검은 색 또는 다른 방법으로 흰색 텍스트를 갖는 것입니다.

종종 (x-1, y-1), (x+1, y-1), (x+1, y-1), (x+1, x+1)에서 첫 번째 검은 텍스트를 그리는 경우가 종종 달성됩니다. 그런 다음 (x, y)의 흰색 텍스트.

또는 먼저 반투명 한 검은 색 블록을 그린 다음 비 투명한 흰색 텍스트를 그릴 수 있습니다. 배경과 텍스트 사이에 항상 일정량의 대조가있을 수 있습니다.

왜 회색인가? 흑백이 가장 좋을 것입니다. 어두운 색상의 흰색, 밝은 색상의 검은 색. 휘도가 임계 값 이상인지 확인하고 하나 또는 다른 것을 선택하십시오.

(.net, c# 또는 asp.net 태그가 필요하지 않음)

색상 이론을 연구해야합니다. "컬러 휠 프로 (Color Wheel Pro)"라는 프로그램은 함께 놀리는 것이 재미 있으며 일반적인 아이디어를 줄 것입니다.

본질적으로, 당신은 주어진 색상에 대한 무료 색상을 찾고 있습니다.

즉, 색상 이론이 도움이되지만 여전히 미세 조정하려면 인간의 눈이 필요하다는 것을 알게 될 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top