Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python PIL 0.5 opacity, transparency, alpha

Is there any way to make an image half transparent?

the pseudo code is something like this:

from PIL import Image
image = Image.open('image.png')
image = alpha(image, 0.5)

I googled it for a couple of hours but I can't find anything useful.

like image 367
Anderson Avatar asked Jul 14 '14 06:07

Anderson


People also ask

What does 0% Transparency mean?

0% opacity means completely transparent: the contents of the layer will be invisible, because they are totally transparent. When entering opacity numbers, there is no need to enter the % percent character: simply enter a number from 0 to 100 and press ENTER.


2 Answers

I realize this question is really old, but with the current version of Pillow (v4.2.1), there is a function called putalpha. It seems to work fine for me. I don't know if will work for every situation where you need to change the alpha, but it does work. It sets the alpha value for every pixel in the image. It seems, though that you can use a mask: http://www.leancrew.com/all-this/2013/11/transparency-with-pil/.

Use putalpha like this:

from PIL import Image
img = Image.open(image)
img.putalpha(127)  # Half alpha; alpha argument must be an int
img.save(dest)
like image 167
Clayton Geist Avatar answered Oct 14 '22 03:10

Clayton Geist


Could you do something like this?

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

Definitely not the most efficient way of doing things but it might work. I wrote the code in browser so it might not be error free but hopefully it can give you an idea.

EDIT: Just noticed how old this question was. Leaving answer anyways for future help. :)

like image 4
Pecans Avatar answered Oct 14 '22 03:10

Pecans