2013-06-16 3 views
0

Photoshop과 같은 전문 이미지 편집 프로그램의 "투명도에 대한 색상"효과를 알 수 있습니다. 이 효과는 어떻게 발생합니까? Python으로 프로그래밍 방식으로 이미지에 약간의 투명도를 추가하고 싶습니다 (생성 된 이미지로 확인할 수 있기 때문에 PIL 테스트 용).투명도 - 프로그램 방식으로

i = "i.png" 
o = "o.png" 

key = (0, 0, 0, 255) 

from PIL import Image as I 

_i = I.open(i) 
_ii = _i.load() 

_o = I.new("RGBA", _i.size) 
_oo = _o.load() 

for x in range(0, _i.size[0]): 
    for y in range(0, _i.size[1]): 
     col = list(_ii[x, y]) 
     for i in range(0, 4): 
      col[i] = abs(col[i] - key[i]) 
     _oo[x, y] = tuple(col) 

_o.save(o) 

내가 두 색상을 뺀 생각,하지만 난 검은 색 이미지 (모든 알파 손실)로 끝날 :이 효과는 그래서 여기에 내 현재 코드의 일부 프랙탈 일에 사용되는 것입니다. 또 다른 생각은 원래 색상을 두 배로 늘리고 두 색상을 역 혼합하는 것과 같이 키가 더 낮은 지 확인하는 것입니다.

의견이 있으십니까?

편집이 효과는 "투명성 색상"기능의 사용 김프로 이루어졌다

Example of "Color to transparency"

. 나는 #FFF를 투명하게 선택했고 GIMP는 처음에는 픽셀의 색상을 무시하지 않고 흰색을 투명하게 만들었습니다. 이것은 내가 실제로하고 싶은 것이고, 이미지 에서처럼 이미지의 색상을 투명하게 만듭니다.

은 (내가 두 번째 이미지에 검정색 배경을 추가, 그래서 당신은 투명 알고있다. 원본 이미지는 단지 첫 번째, 흰색 배경처럼 주변의 약간 녹색이고, 검은 센터) 교체 할 경우

+0

위키 피 디아의 문서를 확인하십시오 : http://en.wikipedia.org/wiki/Transparency_%28graphic%29#Compositing_calculations – fodma1

+0

나는이 기사를 여러 번 읽었지만 실제로 얻지는 못한다. 내가 밤을 코딩 한 후 꽤 피곤해서 ... 이걸 따라 나를 도울 수 있니? – michaeln

답변

0

"투명한"픽셀에 의해 주어진 색상의 픽셀이 있다면, 주어진 픽셀에 필요한 색상이 있는지 테스트 할 수 있습니다. (2) 알파를 0으로 설정하여 "투명"으로 설정하십시오. 트릭을 수행하는 것과 비슷한 것 :

for x in range(0, _i.size[0]): 
    for y in range(0, _i.size[1]): 
     col = list(_ii[x, y]) 
     if col[0:3] == my_key_color[0:3]: 
      _oo[x,y] = col[0:3]+(0,) # keep RGB, set A to 0 
     else: 
      _oo[x,y] = col 

픽셀이 완전히 투명하거나 그대로 남아있는 매우 기본적인 해결책입니다. 좀 더 "전문적인"효과를 원한다면 조금만 더 정제 해 보도록하십시오.

+0

감사합니다. 그러나 이것은 실제로 모서리가있는 이미지를 출력합니다. 내 생각은 거의 동일한 색상의 픽셀에 투명도 (알파 = 0이 아니지만 알파는 거의 0)를 추가하는 것이 었습니다. 내 질문을 편집하고 몇 가지 그림을 추가하여 지적한다. – michaeln