2017-02-21 1 views
0

RGB와 하나의 연속 색상 값 (예 : float [0..1] 또는 Integer [0..255]) 사이를 변환 할 수 있는지 물어보고 싶습니다. 는 색상 범위를 나타냅니다.RGB와 하나의 정수/부동 소수점 값 사이의 변환

예 : 나는 무지개 같은 연속 색상 범위가 : - 오렌지 - 노란색 - 녹색 - 파랑 - 인디고 - 바이올렛

-

레드>로 표현 0 ~ 1 0 ~ 255 (또는 어떤 범위)

그리고 지금 나는 값을 변환하고 싶다. (0.5 = 녹색)을 동일한 RGB 값 ([0,1,0]?)으로 변환합니다. 전달 기능 (앞뒤)으로 가능합니까? 어쩌면 파이썬에서?

답변

2

RGB가 3 개의 숫자를 필요로하는 모든 이유는 본질적으로 3D 공간이기 때문입니다. 당신은 1로 3 연속 번호 라인을 짜내려고 것입니다! 당신은 당신이 좋아 통해 색 혼합 (코드 VBA로 작성하지만, 쉽게 휴대용)

For i = 1 To 255 
    ' Scale with no red, increase and decrease blue and green respectively 
    Range("a" & i).Interior.Color = RGB(0, i, 255 - i) 
    ' Use a MOD function to keep the values between 0 and 255 
    ' note this can cause some abrupt changes in your scale 
    Range("b" & i).Interior.Color = RGB(128 + i Mod 255, i, 255 - i) 
    ' You can increase and decrease different RGB values for desired result 
    Range("c" & i).Interior.Color = RGB((255 - i) Mod 255, (0 + i) Mod 255, i)  
Next i 

출력 (더 나은 행으로 만든 열을 보려면 아래처럼 연극을 주변에 있고, 규모를 선택해야 할 것) 여기보기 :

Colour bands 그래서

은 당신이 원하는 경우에 당신이 조회를 저장할 수, 당신은 당신의 단일 변수로 i있을 것입니다) 위의 그 같은 (1 차원 규모 RGB에서 이동하거나 함수를 만들 수있는 위의 각 행 에서처럼 i의 단일 값에서 색상을 만듭니다.

이제이 1D 눈금에서 3D 눈금으로 되돌아가는 것은 기술적으로 불가능합니다. 필요한 추가 정보를 잃어 버렸습니다. 그러나 눈금을 만들기위한 매핑 함수를 알고 있다면 각 입력에 따라 각 RGB 값을 간단히 가져올 수 있습니다.

희망이 도움이됩니다.

+0

감사합니다. 당신은 완전히 옳습니다. 가능한 모든 색상에 대해 _i_를 반복하는 것은 어렵습니다. Photoshop을 살펴본 결과 밝기를 포함하지 않는 "원"으로 모든 색상을 반복하는 색상 관리자를 발견했습니다. [link] (https://picload.org/image/rlgwlcci/screenshot2017-02-2116.15) .26.png) 그것은 빨간색 (0,0,256)으로 시작하고 같은 빨간색 값으로 끝나고 6 턴으로 _i_를 증가/감소시킵니다 ... 그래서 가장 중요한 것을 모으는 동안 3D RGB 공간에 6 줄을 만듭니다 그림 물감. 나는 이것으로부터 전달 함수를 만들려고 노력한다. – Rainflow

+0

Photoshop 조사와 내 답변 사이에 니스 소리가 들리지만 작동하는 시스템이있을 수 있습니다!솔루션에 도달 할 수 있다면 내 대답을 수락 해 주셔서 감사합니다. – Wolfie

0

가장 간단한 방법은 단순히 각 구성 요소에 가중치를 주면서 RGB를 더하는 것입니다. 그렇게하면 0-16,777,215의 범위가 부여됩니다. 예를 들면 : 주어진 언어의 진수 컨버터 https://www.shodor.org/stella2java/rgbint.html

코드는 모든 구글 이상이어야합니다

RGB Tuple = Hex Value = Decimal 
0,0,0 = 0x000000 = 0 
255,255,255 = 0xFFFFFF = 16777215 

여기에 개별 색상을 변환하는 온라인 계산기입니다. :)

원하는 숫자 공간 (예 : 0-1 또는 무엇이든)을 사용하고 원하는만큼 앞뒤로 이동할 수 있습니다. 선택한 번호 공간에 1670 만 개 이상의 고유 색상이 모두 포함되어있는 한 원하는만큼 이동할 수 있습니다.

숫자 공간을 압축하면 일부 색상이 손실됩니다 (첫 번째 포스터 설명과 같이).