2013-09-04 4 views
1

하나의 이미지를 만들기 위해 서로 쌓아 놓고 싶은 여러 이미지로 작업하고 있습니다. 그러나 그들과 함께 작업 할 때 이미 이미지에 투명도 (알파! = 255)가 있으면 이미지의 일부가 희미하게 보입니다. 투명성이 없다면 모두 좋다.알파가있는 PIL 붙여 넣기 이미지가 흐리게 표시됩니다.

내가 작업 한 이미지 중 하나를 PNG에 저장하고 문제를 복제하는 작은 코드를 만들었습니다. 기본적으로, 나는 투명 배경으로 새로운 이미지를 만드는거야 다음 상단에 이미지를 붙여 것은이 완료되면

from PIL import Image 

img=Image.new('RGBA', (946,627), (0,0,0,0)) 
overlayImage = Image.open('drawing.png') 
img.paste(overlayImage, (0,0), overlayImage) 
img.save('drawing-pasted.png') 

, - pasted.png 그리기 다음과 같습니다

drawing-pasted.png

그러나 원래의 도면 (drawing.png)이 닮은 :

drawing.png

(이미지 manua 자른

lly를 표시합니다.) 원래 이미지 서클 채우기 색상은 알파 값이 179입니다.

다른 사람이이 문제를 겪었습니까?

감사합니다.

답변

0

배경이 검정색이며 완전히 투명합니다. 원본은 파란색이지만 알파는 179이므로 2 픽셀 (0,0,0,0) 및 (0,0,255,179) 은 파란색으로 가정합니다. - 이미지를 붙이면 을 넘을 수 있으므로 새 이미지의 알파를 사용하므로 (255-179)/255 또는 약 30 %의 검정색을 사용할 수 있습니다. 당신은 당신의 이미지가 아닌 검은 배경에서 255 시작에 알파를 설정 overlayImage.putalpha를 사용할 수

은 (는 새로운 이미지 뒤에 있기 때문에 N.B.는 배경의 알파 차이는 없습니다).

+0

여기에 무슨 뜻인지 잘 모르겠습니다. 이미지에 255의 알파를 넣으면 파란 점이 나타나지만 검정색 배경이 가득차 있습니다. 이는 내가 원하는 것이 아닙니다. 문제를 재현하는 코드가 가장 적기 때문에 투명 이미지를 사용했습니다. 내 주요 목표는 이미지 (지도)로 시작하여 투명도 수준을 변경하지 않고이 점들을 오버레이하는 것입니다. 하지만 지금은 점 이미지가 희미 해집니다. – MikeTheReader

+0

아! 따라서 현재 배경은지도이고 오버레이는 파란색 점으로 검정색입니다. 즉 0이 붙은 오버레이가 있어야합니다. 즉, 점이있는 위치를 제외하고는 (0,0,0,0)의 색을 사용해야합니다. __just 점은 (0, 255, 255) 색을 가져야합니다. 마스크 생성을 사용하거나 코드에서 색상 및 알파를 설정하여 점을 생성 할 수 있으므로이 작업을 수행 할 수 있습니다. –

+0

도트는 (0, 0, 255, 179)이며 나머지 이미지는 투명한 배경입니다. 그래서, 그 이미지가 있습니다 (위의 두 번째 이미지입니다). 그러나 맵 이미지 위에 마스크를 붙여 붙여 넣을 때 점의 알파가 "사라집니다". – MikeTheReader

관련 문제