-
Warning: This Backend API is designed specifically to work in combination with Frontend : https://github.com/VishaL6i9/Image-Processing-Web-Appliction.git
-
Prerequisites: Node.js , JDK-23 , Maven (Provided)
- Overview
- Features
- Technologies Used
- Installation
- Usage
- API Endpoints
- Contributing
- License
- Contact
- Acknowledgments
The Image Processor Backend is a Spring Boot application designed to handle image uploads, processing, and retrieval. It provides various image processing functionalities such as inverting colors, flipping, rotating, resizing, and converting to grayscale. The backend interacts with the frontend to provide a seamless user experience.
- Upload Image: Upload images to the server.
- Invert Colors: Invert the colors of the uploaded image.
- Flip Image: Flip the image horizontally or vertically.
- Rotate Image: Rotate the image by a specified number of degrees.
- Resize Image: Resize the image to specified dimensions.
- Grayscale Conversion: Convert the image to grayscale.
- Retrieve Image: Retrieve the processed image from the server.
- Error Handling: Log and return error messages for failed operations.
- Spring Boot: A Java-based framework for building web applications.
- Thumbnailator: A Java library for image processing.
- SLF4J: A logging facade for various logging frameworks.
- MultipartFile: For handling file uploads in Spring Boot.
- ImageIO: For reading and writing images in Java.
To get started with the Image Processor Backend, follow these steps:
-
Clone the repository:
git clone https://github.com/VishaL6i9/Image-Processing-Web-Application.git cd Image-Processing-Web-Application/backend -
Build the project:
./mvnw clean install
-
Run the application:
./mvnw spring-boot:run
-
Upload Image:
- Endpoint:
/api/image/upload - Method:
POST - Parameters:
file: The image file to upload.
- Response: Returns the URL to retrieve the uploaded image.
- Endpoint:
-
Retrieve Image:
- Endpoint:
/api/image/get/{fileName} - Method:
GET - Parameters:
fileName: The name of the file to retrieve.
- Response: Returns the image file.
- Endpoint:
-
Invert Image:
- Endpoint:
/api/image/invert - Method:
POST - Parameters:
previousImage: The name of the previous image file.
- Response: Returns the URL to retrieve the inverted image.
- Endpoint:
-
Flip Image:
- Endpoint:
/api/image/flip - Method:
POST - Parameters:
previousImage: The name of the previous image file.direction: The direction to flip the image (horizontalorvertical).
- Response: Returns the URL to retrieve the flipped image.
- Endpoint:
-
Rotate Image:
- Endpoint:
/api/image/rotate/{degrees} - Method:
POST - Parameters:
previousImage: The name of the previous image file.degrees: The number of degrees to rotate the image.
- Response: Returns the URL to retrieve the rotated image.
- Endpoint:
-
Resize Image:
- Endpoint:
/api/image/resize - Method:
POST - Parameters:
previousImage: The name of the previous image file.width: The new width of the image.height: The new height of the image.
- Response: Returns the URL to retrieve the resized image.
- Endpoint:
-
Grayscale Image:
- Endpoint:
/api/image/grayscale - Method:
POST - Parameters:
previousImage: The name of the previous image file.
- Response: Returns the URL to retrieve the grayscale image.
- Endpoint:
We welcome contributions to the Image Processor Backend! If you'd like to contribute, please follow these steps:
- Fork the repository.
- Create a new branch:
git checkout -b feature/your-feature-name
- Make your changes and commit them:
git commit -m "Add some feature" - Push to the branch:
git push origin feature/your-feature-name
- Create a pull request on GitHub.
Please ensure your code follows the existing coding standards and includes appropriate tests.
This project is licensed under the MIT License. See the LICENSE file for more details.
- Name: Vishal Kandakatla
- Email: vishalkandakatla@gmail.com
- Thanks to the open-source community for providing the tools and libraries that made this project possible.