66 lines
1.5 KiB
Python
66 lines
1.5 KiB
Python
# run this in any directory
|
|
# add -v for verbose
|
|
# get Pillow (fork of PIL) from
|
|
# pip before running -->
|
|
# pip install Pillow
|
|
|
|
# import required libraries
|
|
import os
|
|
import sys
|
|
from PIL import Image
|
|
|
|
# define a function for
|
|
# compressing an image
|
|
def compressMe(file, verbose = False):
|
|
|
|
# Get the path of the file
|
|
filepath = os.path.join(os.getcwd(),
|
|
file)
|
|
|
|
# open the image
|
|
picture = Image.open(filepath)
|
|
|
|
# Save the picture with desired quality
|
|
# To change the quality of image,
|
|
# set the quality variable at
|
|
# your desired level, The more
|
|
# the value of quality variable
|
|
# and lesser the compression
|
|
# En porcentaje
|
|
picture.save("Compressed_"+file,
|
|
"JPEG",
|
|
optimize = True,
|
|
quality = 9)
|
|
return
|
|
|
|
# Define a main function
|
|
def main():
|
|
|
|
verbose = False
|
|
|
|
# checks for verbose flag
|
|
if (len(sys.argv)>1):
|
|
|
|
if (sys.argv[1].lower()=="-v"):
|
|
verbose = True
|
|
|
|
# finds current working dir
|
|
cwd = os.getcwd()
|
|
|
|
formats = ('.jpg', '.jpeg', '.png')
|
|
|
|
# looping through all the files
|
|
# in a current directory
|
|
for file in os.listdir(cwd):
|
|
|
|
# If the file format is JPG or JPEG
|
|
if os.path.splitext(file)[1].lower() in formats:
|
|
print('compressing', file)
|
|
compressMe(file, verbose)
|
|
|
|
print("Done")
|
|
|
|
# Driver code
|
|
if __name__ == "__main__":
|
|
main()
|