Image Compressor

The Image Compression Web Application is a simple Flask-based web application that allows users to upload images for compression while maintaining image quality. The application utilizes the popular Python Imaging Library (PIL) to perform image compression.

Table of Contents

Features

  • Upload images for compression while maintaining quality.
  • Download the compressed image for further use.
  • User-friendly web interface powered by Flask.
  • Error messages for unsupported formats and compression failures.

Getting Started

Prerequisites

  • Python 3.6 or higher
  • Flask (pip install Flask)
  • Python Imaging Library (PIL) (pip install Pillow)

Installation

  1. Clone the repository:
git clone https://github.com/k1lgor/image-compressor.git
cd image-compressor
  1. Install the required dependencies:
pip install -r requirements.txt

Running the Application

  1. Navigate to the project directory:
cd image-compressor
  1. Run the Flask application:
flask run
  1. Open your web browser and go to http://localhost:5000 to access the application.

Usage

Uploading an Image

  1. Visit the application URL (e.g., http://localhost:5000).
  2. Click the “Browse” button to select an image from your local machine.
  3. Click the “Compress and Download” button to initiate the compression process.
  4. The iamge will be downloaded automatically.

Using Docker

You can also run the application using Docker and Docker Compose.

  1. Make sure you have Docker and Docker Compose installed.
  2. Build the Docker Image:
docker build -t image-compressor .
  1. Start the application using Docker Compose:
docker-compose up -d
  1. Open your web browser and go to http://localhost:5000 to access the application.

Contributing

Contributions are welcome! If you find any issues or have suggestions for improvements, feel free to open an issue or submit a pull request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Code Coverage

For detailed code coverage information, see the Code Coverage Report.

Plamen Ivanov
Plamen Ivanov
Junior DevOps Engineer

Python & Bash Automation Ninja | Gopher Rookie on the Rise