Skip to content

Instantly share code, notes, and snippets.

@espretto
Forked from nojvek/PNGAlphaTrim.py
Last active June 12, 2019 08:58
Show Gist options
  • Save espretto/aff3521d8d928f8a8adb93e1ec98d6a4 to your computer and use it in GitHub Desktop.
Save espretto/aff3521d8d928f8a8adb93e1ec98d6a4 to your computer and use it in GitHub Desktop.
trim transparent border from all png files in a folder
import Image
import sys
import glob
# Trim all png images with alpha in a folder
# Usage "python PNGAlphaTrim.py ../someFolder"
try:
folderName = sys.argv[1]
except :
print "Usage: python PNGPNGAlphaTrim.py ../someFolder"
sys.exit(1)
filePaths = glob.glob(folderName + "/*.png") #search for all png images in the folder
for filePath in filePaths:
image=Image.open(filePath)
image.load()
imageSize = image.size
imageBox = image.getbbox()
imageComponents = image.split()
if len(imageComponents) < 4: continue #don't process images without alpha
rgbImage = Image.new("RGB", imageSize, (0,0,0))
rgbImage.paste(image, mask=imageComponents[3])
croppedBox = rgbImage.getbbox()
if imageBox != croppedBox:
cropped=image.crop(croppedBox)
print filePath, "Size:", imageSize, "New Size:",croppedBox
cropped.save(filePath)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment