2012-12-30 2 views
1

가능한 중복 변경 :
Increase CSS brightness color on click with jquery/javascript?는 색의 밝기를

우리가 녹색, 적색, 청색의 값을 알고있을 때 나는 그것을 매우 유사 색상의 밝기를 변경하는 방법을 자바 스크립트에서

, MSPaint에서 할 수 있습니까?

+0

나는 불투명 –

+2

@KundanSinghChouhan를 통해 생각 - 불투명? 나는 당신이 실수라고 생각합니다 ... –

+0

아마도 [Pointy 's answer here] (http://stackoverflow.com/a/2348659/451969)를보고'hsl'에서 밝기 나 값 ("밝기")을 조작하고 싶을 것입니다. /'hsv', HSV 또는 HSL 기능에 RGB를 제공합니다. –

답변

2

질문은 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]] 

k 값 1보다 1 화상을 밝게보다 큰 하부가 화상을 어둡게한다. 감마 보정은 각 픽셀 성분 (즉, 적색, 녹색 및 청색)에 적용된다. 다음은 몇 가지 예는 각각 k = 1, 2, 3과 같습니다

enter image description hereenter image description hereenter image description here

전체 파이썬 코드 (자바 스크립트 번역에 도움이 될 수 있습니다)이 수행 :

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]) 
관련 문제