我目前正在製作一個顏色選擇器(非常標準,與當前較少選項的photoshop幾乎相同:仍處於早期階段)。這是實際的東西的圖片:http://i.stack.imgur.com/oEvJW.jpg檢索顏色選擇器上的像素顏色的問題
問題是:檢索顏色選擇器(小的,另一個是鼠標)下的像素的顏色,我有這條線,我認爲會做到這一點:
_currentColor = Convert.hsbToHex(new HSB(0,
((_colorSelector.x + _colorSelector.width/2)*100)/_largeur,
((_colorSelector.y + _colorSelector.height/2)*100)/_hauteur
));
只是爲了澄清的代碼,我簡單地使用選擇的座標,以上的Y軸創建一個新的HSB顏色(飽和度被表示在X軸上和亮度(值)這種顏色選擇器)。然後將此HSB顏色轉換爲十六進制,並將其分配給屬性。現在色相始終設置爲0,但這不相關,因爲我只使用純紅色進行測試。
這部分做什麼,我想,但返回的顏色值反轉的大部分角落: 爲(0,0),它應該返回0XFFFFFF,但它返回0x000000處,而不是 (256,0),這是應該返回爲0xFF0000,但它不是 返回0x000000處爲(0,256),它應該返回0x000000處,但它返回0XFFFFFF代替 爲(256,256),它應該返回0x000000處,但它返回爲0xFF0000,而不是
我在代碼中嘗試了很多變體,但我似乎無法正確修復它。任何回覆/建議都比歡迎!
它在這種情況下並沒有真正改變任何東西,問題實際上是我無法確定的角點值的倒置。 – Sheavi 2010-09-28 23:16:08
在這種情況下,發佈'hsbToHex'的代碼將是唯一的方法來發現錯誤,或者這是一個內置函數? – schnaader 2010-09-28 23:18:48
它是我製作的一個功能,但我已經對它進行了測試,並將其與photoshop的值進行了比較。此外,它只是您日常的轉換算法,您可以在網上找到從HSB到RGB,然後二進制轉換以將RGB轉換爲十六進制。 – Sheavi 2010-09-28 23:24:22