1
可能重複:
Increase CSS brightness color on click with jquery/javascript?更改顏色亮度
在JavaScript中,我如何可以改變一個顏色的亮度,當我們知道的紅,藍,綠值就像它可以在MSPaint中完成?
可能重複:
Increase CSS brightness color on click with jquery/javascript?更改顏色亮度
在JavaScript中,我如何可以改變一個顏色的亮度,當我們知道的紅,藍,綠值就像它可以在MSPaint中完成?
這個問題與Javascript無關,我不知道你與MSPaint有什麼關係。另外,僅僅爲了調節亮度而在顏色空間之間轉換可能太昂貴了。有一種更簡單的方法可能對你來說足夠好,這是一種快速簡單的伽馬校正。如果紅色,綠色和藍色的值在[0,255]範圍內,您還可以輕鬆創建一個查找表(lut
),該表將用於快速應用範圍[0 ,255]。這種方法的僞代碼是:
GAMMA = k
lut = []
for i = 0 to 255
v = i/255.0
lut.push(round(255 * (v^GAMMA)))
foreach x, y in image
image[x, y] = lut[image[x, y]]
大於1將圖像變亮,並且低於1的k
甲值將圖像變暗。伽馬校正被應用於每個像素分量(即,分別爲紅色,綠色和藍色)。下面是一些例子與k = 1, 2, 3
,分別爲:
完整的Python代碼來執行這個(Javascript代碼翻譯可以幫助):
import sys
from PIL import Image
GAMMA = 1/3.0
lut = []
for i in xrange(256):
v = i/255.
lut.append(round(255 * (v ** GAMMA)))
img = Image.open(sys.argv[1])
img = img.point(lambda x: lut[x])
img.save(sys.argv[2])
我認爲,通過不透明 –
@KundanSinghChouhan - 不透明度?我認爲你錯了... –
你可能想看到[Pointy的答案在這裏](http://stackoverflow.com/a/2348659/451969),並操縱'hsl'中的亮度或值(「亮度」) /'hsv',他將RGB提供給HSV或HSL功能。 –