我不知道是否Color.RGBtoHSB(r,g,b,hsb)函數歸一化r,g,b之前轉換爲H,S,B或我可以得到java實現了它們內置的函數。我需要知道java如何實現Color.RGBtoHSB(r,g,b,hsb)函數的細節。他們正常化r,g,b
0
A
回答
2
下面是執行,直接Color類的源代碼:
public static float[] RGBtoHSB(int r, int g, int b, float[] hsbvals) {
float hue, saturation, brightness;
if (hsbvals == null) {
hsbvals = new float[3];
}
int cmax = (r > g) ? r : g;
if (b > cmax) cmax = b;
int cmin = (r < g) ? r : g;
if (b < cmin) cmin = b;
brightness = ((float) cmax)/255.0f;
if (cmax != 0)
saturation = ((float) (cmax - cmin))/((float) cmax);
else
saturation = 0;
if (saturation == 0)
hue = 0;
else {
float redc = ((float) (cmax - r))/((float) (cmax - cmin));
float greenc = ((float) (cmax - g))/((float) (cmax - cmin));
float bluec = ((float) (cmax - b))/((float) (cmax - cmin));
if (r == cmax)
hue = bluec - greenc;
else if (g == cmax)
hue = 2.0f + redc - bluec;
else
hue = 4.0f + greenc - redc;
hue = hue/6.0f;
if (hue < 0)
hue = hue + 1.0f;
}
hsbvals[0] = hue;
hsbvals[1] = saturation;
hsbvals[2] = brightness;
return hsbvals;
}
2
只需打開Eclipse - 按Ctrl + Shift + T(開放式),在色彩類型,找到一個java.awt中 - 和瞧。適用於大多數內置類型。
0
RGB未首先歸一化。它在正常範圍內正常化,通常正好在正確範圍內。所以亮度是最大的分量,亮度從0-255範圍到0-1範圍進行歸一化。飽和度也是這樣,它是從最大組件到最小組件的距離,並被擠壓到0-1範圍內。色調是色輪中的角度。但是,沒有它被直接轉換成HSV,並且沒有通過類似sRGB的標準化(sRGB是RGB/255並歸一化到0-1範圍)。
但是,你根本不需要知道這一點。它轉換成HSB。如果你來回轉換一堆,你可以得到舍入誤差嗎?你當然可以。除此之外,如果將RGB縮放爲1或1,000,000,則無關緊要,它將轉換爲表示0-1之間範圍內顏色的完全不同的方式。
相關問題
- 1. C#顏色常數R,G,B值
- 2. 如何打印R,G和B矩陣
- 3. 將浮點顏色通道(R,G,B)轉換爲字節值
- 4. rgb值到php中的r,g,b值
- 5. ,G,B
- 6. Android設置顏色分量(R,G,B)
- 7. 週期R,G,B值爲HUE?
- 8. 如何在MATLAB中將16位R G B值轉換爲8位R G B值?
- 9. 如何在java中顯示圖片給R,G,B
- 10. 從DataBuffer字節數組中獲取R G B顏色
- 11. cocos2d,將圖像分割爲serpate R B G通道?
- 12. 如何設置顏色的R,G,B和Alpha分量?
- 13. 如何使用獲得的R,G,B值opencv2.3
- 14. R中函數的優化(L-BFGS-B需要有限的'fn')
- 15. 我可以從畫布的fillStyle中獲得r,g和b嗎?
- 16. 如何使用ggplot2繪製(x,y,r,g,b)座標圖像?
- 17. 如何將單個電位器值轉換爲R,G,B?
- 18. 如何從CSS顏色中提取r,g,b,a值?
- 19. 如何獲得色彩(R,G,B,A)在three.js所
- 20. R,G和B係數的這些值來自哪裏?
- 21. 如何知道r,g,b值用於獲取其他顏色動態繪製JFrame?
- 22. PIX [X,Y]返回整數代替(R,G,B,A)三元組
- 23. Python 2.7-在數組中分離b,g,r
- 24. 變換 'A => F [G [B]]' 到 'F [G [A => B]' 階
- 25. 如何從Java中的R,G,B值獲取rgb像素值BufferedImage
- 26. 將RGB uint分解爲其單獨的R G B分量
- 27. 使用jquery更改圖像的R,G,B?
- 28. 獲取r,g,b中rgb()格式的顏色分量
- 29. 以(r,g,b)的形式指定顏色?
- 30. 通過顏色獲得R,G,B的值
這表明服務器沒有找到 –
奇怪 - 我會嘗試重建型緩存: 與Eclipse關閉:進入工作區/ .metadata/.plugins/org.eclipse.jdt.core,除去*的.index和savedIndexNames .txt,重新啓動Eclipse。它將重建整個類型緩存。 – mtsvetkov
它沒有工作 –