A web app to filter images.
This is the final project for the CS50 course offered by Harvard University. The project demonstrates the use of Python, Flask, and the Pillow library to apply various image filters. The application allows users to upload an image, choose from a variety of filters, and then download the filtered image.
Video demo : https://youtu.be/jBPClMkiFcg
The FilterIn is a web application that provides users with the ability to apply different filters to their images. This project showcases the integration of Flask, a lightweight web framework for Python, and Pillow, a powerful image processing library. The app is designed to be user-friendly and accessible, making it easy for users to transform their images with a few clicks. It was inspired by the CS50 classes where we learn how to filter images on C and after how Python make it easy using the library Pillow.
- Python: The core programming language used for developing the application.
- Flask: A micro web framework for Python that provides the necessary tools to build the web application.
- Pillow: A Python Imaging Library (PIL) fork that adds image processing capabilities to your Python interpreter.
- HTML: Used for structuring the web pages.
- CSS: Used for styling the web pages.
- Bootstrap: A CSS framework that helps create responsive and modern web designs.
- FontAwesome: Used for adding icons to the project.
- Upload an image and apply one of several filters.
- View examples of each filter on the homepage.
- Download the filtered image.
- Navigation bar with links to Home and About pages.
- About page with project details and contact information.
The grayscale filter converts the image to shades of gray. This is done by removing the color information from the image, leaving only the intensity values. This filter is useful for creating a classic, timeless look or for emphasizing texture and detail in an image.
The blur filter applies a Gaussian blur to the image, softening the details and reducing noise. This filter is useful for creating a dreamy or out-of-focus effect.
The sharpen filter enhances the edges and fine details of the image, making it appear more crisp and clear. This filter is useful for improving the clarity and definition of an image.
The edge enhance filter slightly improves the contrast of the edges within the image. This filter is useful for making the outlines of objects more pronounced without over-sharpening the image.
The find edges filter highlights the edges within the image, turning them white and the rest of the image black. This filter is useful for creating an outline or sketch-like effect.
The contour filter traces the edges of the objects in the image, creating a contour map of the image. This filter is useful for artistic effects and for highlighting the shapes within an image.
The sepia filter gives the image a warm, brownish tone, mimicking the look of old photographs. This filter is useful for creating a vintage or nostalgic effect.
The detail filter enhances the fine details in the image, making textures and small features more prominent. This filter is useful for highlighting intricate patterns and details.
The emboss filter transforms the image to make it look as if it has been embossed, giving it a 3D, raised effect. This filter is useful for creating artistic and decorative effects.
The smooth filter reduces noise and smooths out the image, making it appear softer and more polished. This filter is useful for reducing harsh details and creating a gentle, soothing effect.
The edge enhance more filter significantly improves the contrast of the edges within the image, making them very prominent. This filter is useful for emphasizing the outlines and boundaries in an image.
https://filterin-3803fb89725a.herokuapp.com/
Feel free to reach out to me through the following platforms:
This project is open source and available for use under the MIT License.
This README provides a comprehensive overview of the FilterIn, explaining its features, the filters available, and how to use and deploy the application. If you have any questions or feedback, feel free to contact me through the provided platforms.