DEV Community

Cover image for Compresssio - Optimize your Images to save storage space...
Dhruv Panchal
Dhruv Panchal

Posted on

Compresssio - Optimize your Images to save storage space...

What I Built:

The above script uses TinyPNG's savvy lossy compression methods to reduce the document size of your JPG/PNG files. This is achieved by specifically decreasing the number of colors in the image, therefore lesser number of bytes are required to store the information. The impact of the script is nearly invisible but it makes an exceptionally enormous effect in file size of the image.

Image Comparison:

Image 1:

Image 2:

Setup (Windows):

  1. Install Python
  2. Clone this repository
git clone https://github.com/dhhruv/Compresssio-GUI.git
Enter fullscreen mode Exit fullscreen mode
  1. Install, create and activate virtual environment. For instance we create a virtual environment named 'venv'.
pip install virtualenv
python -m virtualenv venv
venv\Scripts\activate.bat
Enter fullscreen mode Exit fullscreen mode
  1. Install dependencies
pip install -r requirements.txt
Enter fullscreen mode Exit fullscreen mode

How to Get Your API Key !

You can Find your API Key from the Website https://tinypng.com/developers after Signing Up and save it somewhere on your PC/Laptop.

How To Use !

  1. Click SELECT INPUT FOLDER Button to select the INPUT FOLDER which contains all the Images to be Compressed/Optimized.
  2. Click SELECT OUTPUT FOLDER Button to select the OUTPUT FOLDER which will contain all the the Compressed/Optimized Images. (After Compression)
  3. Enter Your API Key from TINYPNG Website. If you don't have one in possession then you can find on this website https://tinypng.com/developers .
  4. Hit the COMPRESS Button and the INPUT FOLDER containing Supported Image Formats will be Compressed and saved in the OUTPUT FOLDER.
  5. Click CLEAR Button to reset the input fields and status bar. (If needed)

Important Note:

  • The limit you'll have at first is of 500 images per month on the Free plan. You can change this according to your requirement at https://tinypng.com/developers
  • Recommended to keep INPUT and OUTPUT Folder different for your ease to differentiate between Optimized and Unoptimized Images.
  • This Script is just a Prototype so Metadata is not stored in the Compressed Images from the Original Images.
  • Directory Structure in INPUT and OUTPUT Folders may differ but all Supported Images will be saved according to their directories.
  • The Authors will not be responsible for any kind of loss of data so it is essential to have a Backup of Original Data placed in the Input Folder. Read the LICENSE for more information.

Image Credits:

Check out the Compresssio Source Code

Top comments (4)

Collapse
 
krishan111 profile image
Krishan111

Sir, will it only work with png and jpg images ?

Collapse
 
dhhruv profile image
Dhruv Panchal

Yes, only jpg, jpeg and png for now..

Collapse
 
deta19 profile image
mihai

can we make em, like in kilobytes not megabytes?
Imean a webpage with 1megabyte of each picture... its brutal

Collapse
 
dhhruv profile image
Dhruv Panchal • Edited

Yes, there can be a feature where you can select the compression ratio as per your preferences for the image but for now it's not implemented in this Script. So wait till further updates.