我想問一下在RGB和一個連續的顏色值之間是可行的嗎(比如在float [0..1]或Integer [0..255]中)代表一個顏色範圍。在RGB和一個整數/浮點值之間進行轉換
例如:I具有連續色彩範圍像彩虹:
紅色 - 橙色 - 黃色 - 綠色 - 藍色 - 靛藍 - 紫
- >與表示0〜1或0〜255(或無論範圍)
現在我想改變價值例如(0.5 =綠色)變成相等的RGB值([0,1,0]?)。傳遞函數(後退和前進)可能嗎?也許在Python中?
我想問一下在RGB和一個連續的顏色值之間是可行的嗎(比如在float [0..1]或Integer [0..255]中)代表一個顏色範圍。在RGB和一個整數/浮點值之間進行轉換
例如:I具有連續色彩範圍像彩虹:
紅色 - 橙色 - 黃色 - 綠色 - 藍色 - 靛藍 - 紫
- >與表示0〜1或0〜255(或無論範圍)
現在我想改變價值例如(0.5 =綠色)變成相等的RGB值([0,1,0]?)。傳遞函數(後退和前進)可能嗎?也許在Python中?
RGB需要3個數字的全部原因是因爲它本質上是一個3D空間。你會試圖將3個連續的數字行壓縮到1!你必須選擇一個規模,有一個發揮作用的像下面來看看哪種顏色混合,通過你喜歡的......(代碼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
輸出(製作成行更好的列查看這裏):
所以從RGB到一維的規模(如上面的),你就只需要i
作爲單個變量,你可以存儲一個查找,如果你想購買或創建一個函數按照上面的每行一樣,從單個值i
創建顏色。
從技術上講,從這個一維標度回到三維標度在技術上是不可能的。你失去了你需要的額外信息。但是,如果您知道您的映射函數來創建比例,則可以簡單地通過各自的輸入獲取每個RGB值。
希望這會有所幫助。
最簡單的方法是在加權每個組件的同時加上RGB。這樣做會給你一個範圍0-16,777,215。例如:
RGB Tuple = Hex Value = Decimal
0,0,0 = 0x000000 = 0
255,255,255 = 0xFFFFFF = 16777215
這裏有一個在線計算器,將其轉換任何單獨的顏色:
代碼在任何給定的語言十六進制轉換器將全部在谷歌。 :)
您可以使用任何您喜歡的數字空間(例如0-1或任何其他數字),並根據需要隨意來回切換,只要您選擇的數字空間可以保存所有這些16.7百萬種獨特的顏色即可。
如果你壓縮數字空間,你會失去一些顏色(如第一張海報解釋)。
謝謝,你是完全正確的。遍歷所有可能的顏色很難遍歷一個_i_。當我查看Photoshop時,我發現了一種顏色管理器,它可以在「圓圈」(不包括亮度)下迭代所有可能的顏色:[link](https://picload.org/image/rlgwlcci/screenshot2017-02-2116.15 .26.png)它以紅色(0,0,256)開始,以相同的紅色值結束,同時增加/減少_i_以及6轉...因此它在3D RGB空間中創建6行,同時收集最重要的顏色。我試圖建立一個傳遞函數。 – Rainflow
不錯,聽起來像你的Photoshop調查和我的答案之間,你可能有一個工作系統!感謝您接受我的回答,如果它幫助您達到您的解決方案 – Wolfie