There are organizations who receive data form lakhs or more persons, which is mostly in form of text, with a few images. Most of you know that the text part is stored in databases in the form of tables, but what about the images? The images are small compared to the textual data but constitute a much higher space in terms of storage. Hence, to save on the part of space and keep running the processes smoothly, they ask the users to submit the compressed images. As most of the readers have a bit of CS background(either in school or college), they understand that using online free tools to compress images is not a good practice for them.
Till Windows 7, Microsoft used to give MS Office Picture Manager which could be used to compress images till an extent, but it also had some limitations.
Those who know a bit of python can install python and use pip install pillow in command prompt(terminal for Linux users) to install pillow fork.
You’ll get a screen like this
Assemble all the files in a folder and keep the file Compress.py in the same folder.
Run the python file with python.
Below is the Source Code of the file:
Python3
# 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 picture.save( "Compressed_" + file , "JPEG" , optimize = True , quality = 10 ) 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' ) # 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() |
Folder Before Compression:
Command Line for executing Code:
PS: Please run code after getting into the directory.
Folder after execution of Code:
You can clearly see the compressed file.