關於PS色相/飽和度中的色相,就不用研究了,原理和HSV或者HSL的H都是一樣的。
而飽和度在-100,0,+100這三點上的效果與HSL完全一樣,其它范圍就有區別了,特別是在0 -- +100范圍,調整時比HSL的H調整要平坦,所以有效調整幅度較大,有些圖片調整到+50%以上還不覺很大失真(這裡的“失真”是針對顏色中難看的斑點來說的,並不是說整個圖片不覺失真),而HSL的H的正向調整10%以上就很難看了;與HSV則沒一點是相同的,可見PS的色相/飽和度算法應該是在HSL基礎上改進的。
最令人困惑的是PS的明度調整,好像是“獨立”於色相飽和度的。我們知道,要在程序中利用HSV或HSL模式調整V或者L,往往要先將RGB轉換為HSV或HSL,或者至少要在其中將V或者L部分分離出來,修改後再轉換為RGB模式(可參見我的文章《GDI+ 在Delphi程序的應用 -- 線性調整圖像亮度 》分離HSL的L部分調整亮度),而PS的明度調整則不一樣,完全不用轉換RGB到所謂的HSB進行調整,直接寫個函數就可以了,請看下面的Delphi過程及測試代碼(分別用GDI+的TGpBitmap和Delphi的TBitmap測試),用於模仿PS明度調整(嚴格的說不叫模仿,而是實實在在的PS明度調整過程):