이미지를 반 투명하게 만들 수있는 방법이 있습니까?파이썬 PIL 0.5 불투명도, 투명도, 알파
from PIL import Image
image = Image.open('image.png')
image = alpha(image, 0.5)
내가 몇 시간을 봤하지만 유용한 아무것도 찾을 수 없습니다
의사 코드는 다음과 같은 것입니다.
이미지를 반 투명하게 만들 수있는 방법이 있습니까?파이썬 PIL 0.5 불투명도, 투명도, 알파
from PIL import Image
image = Image.open('image.png')
image = alpha(image, 0.5)
내가 몇 시간을 봤하지만 유용한 아무것도 찾을 수 없습니다
의사 코드는 다음과 같은 것입니다.
다음과 같이 할 수 있습니까?
from PIL import Image
image = Image.open('image.png') #open image
image = image.convert("RGBA") #convert to RGBA
rgb = image.getpixel(x,y) #Get the rgba value at coordinates x,y
rgb[3] = int(rgb[3]/2) or you could do rgb[3] = 50 maybe? #set alpha to half somehow
image.putpixel((x,y), rgb) #put back the modified reba values at same pixel coordinates
확실히 가장 효율적인 방법은 아니지만 효과가있을 수 있습니다. 브라우저에서 코드를 작성하여 오류가 없더라도 잘하면 아이디어를 줄 수 있습니다.
편집 :이 질문이 얼마나 오래된 지 잘 알고 있습니다. 어쨌든 미래의 도움을 위해 대답을 남겨주세요. :)
내가 함께 피칸의 대답이 질문에서 cr333의 질문 넣어 :
Using PIL to make all white pixels transparent?
을 ...이 함께했다 : 내 경우
from PIL import Image
opacity_level = 170 # Opaque is 255, input between 0-255
img = Image.open('img1.png')
img = img.convert("RGBA")
datas = img.getdata()
newData = []
for item in datas:
newData.append((0, 0, 0, opacity_level))
else:
newData.append(item)
img.putdata(newData)
img.save("img2.png", "PNG")
, 나는 텍스트가 검정색 배경이 있고 반투명 한 배경 만 원했던 경우 :
from PIL import Image
opacity_level = 170 # Opaque is 255, input between 0-255
img = Image.open('img1.png')
img = img.convert("RGBA")
datas = img.getdata()
newData = []
for item in datas:
if item[0] == 0 and item[1] == 0 and item[2] == 0:
newData.append((0, 0, 0, opacity_level))
else:
newData.append(item)
img.putdata(newData)
img.save("img2.png", "PNG")
난 혼자서 이렇게 했어. 내 코드가 좀 이상 할지도 모르지만 ... 괜찮아. 그래서 나는 그것을 여기에서 나눕니다. 그것은 누군가를 도울 수 있기를 희망합니다. =)
아이디어 : 투명한 그림은 튜플의 네 번째 요소 인 낮은 알파를 의미합니다.
내 프레임 코드 :
from PIL import Image
img=open(image)
img=img.convert('RGBA') #you can make sure your pic is in the right mode by check img.mode
data=img.getdata() #you'll get a list of tuples
newData=[]
for a in data:
a=a[:3] #you'll get your tuple shorten to RGB
a=a+(100,) #change the 100 to any transparency number you like between (0,255)
newData.append(a)
img.putdata(newData) #you'll get your new img ready
img.save(filename.filetype)
내가 자동으로이 작업을 수행 할 수있는 권리 명령을 찾을 수 없었기 때문에 혼자이 물품. 다시 도움이되기를 바랍니다. XD
나는이 질문이 정말로 오래되었다는 것을 알고 있지만, 현재 버전의 베개 (v4.2.1)에는 putalpha
이라는 함수가있다. 나를 위해 잘 작동하는 것 같습니다. 알파를 변경해야하는 모든 상황에서 효과가 있을지 모르겠지만 작동합니다. 이미지의 모든 픽셀에 알파 값을 설정합니다. 마스크를 사용할 수 있지만, http://www.leancrew.com/all-this/2013/11/transparency-with-pil/입니다.
from PIL import Image
img = Image.open(image)
img.putalpha(128) # Half alpha; alpha argument must be an int
img.save(dest)
는 대답은 PIL을 사용해야합니까 :이 같은
사용
putalpha
? 나는 특정 모듈로 이것을 달성하는 방법이 있다고 생각하지 않는다. – xander[이 질문] (http://stackoverflow.com/q/24731063/724176)의'reduce_opacity()'가 도움이됩니까? – Hugo