I used this little bit of code in one of my batch texture reduction scripts to apply a threshold to the alpha channel. This is to make sure it is still one bit after the size reduction, but also leaves the other channels intact.
Here is the snippet:
from PIL import Image fileName = r'C:\temp\test_image.tga' #Load the image try: img = Image.open(fileName) tempImg = img.load() del(tempImg) except IOError: print "*** IOError: %s\n" % sys.exc_info()[1].message #Test if the image actually *has* an alpha channel if img.mode in ('RGBA', 'LA') or (img.mode == 'P' and 'transparency' in img.info): #create a threshold value threshold = 128 #Create a reference to the alpha channel using the split function alpha = img.split()[3] #Apply the threshold using the point function alpha = alpha.point(lambda p: p > threshold and 255) #Paste a copy of the alpha object that has had the threshold applied. img.putalpha(alpha) print 'Saving', fileName img.save(fileName)
No comments:
Post a Comment
Comments?