Skip to content

MadisonEvans94/PalettePal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

Palette Pal

Palette Pal is a React-based web app designed to help developers and designers create color palettes based on images. The app breaks down an image into its constituent pixels, projects them into RGB color space, and uses a K-means clustering algorithm to generate a specified number of colors representing the image. Users can customize the number of colors in their palette and copy the corresponding hex codes for use in their design projects.

for backend repo, visit here

Features

  • Upload and process images to extract color palettes
  • K-means clustering algorithm for grouping similar colors
  • User-customizable number of colors in the palette
  • Copy hex codes of generated colors
  • Client-side implementation
  • Responsive design for mobile and desktop devices

How it Works

  • Users upload an image to the web app.
  • The app processes the image, breaking it down into its constituent pixels.
  • The pixels are projected into RGB color space.
  • A K-means clustering algorithm is used to cluster similar pixels.
  • The user can select the number of colors they want in their palette.
  • The app generates the specified number of colors to represent the image.
  • Users can copy the corresponding hex codes for use in their design projects.

Contributing

I welcome contributions from developers who are interested in improving Palette Pal! Here are some of the current updates we are looking for:

  • Color Harmonization: Implement an algorithm to suggest harmonious color schemes based on the generated palette, utilizing principles from color theory.

  • Palette Export: Enable users to export their generated color palettes to various formats like JSON, XML, or directly to CSS/SCSS variables.

  • Image Filters: Add pre-processing filters that users can apply to images before generating palettes, such as grayscale, sepia, etc.

  • Machine Learning Optimization: Explore the use of machine learning models to improve the efficiency and accuracy of the K-means clustering algorithm.

Getting Started

  1. Fork the repository on GitHub.
  2. Clone the forked repository to your local machine. bash

git clone https://github.com/yourusername/Palette-Pal.git

  1. Install the required dependencies.

npm install

  1. Start the development server. sql

npm start You can now view the app by navigating to http://localhost:3000 in your browser.

Contributing Guidelines

  1. Create a new branch for your feature or bugfix.

git checkout -b feature/your-feature-name 2. Make your changes and test them thoroughly. 3. Commit and push your changes to your forked repository.

git add . git commit -m "Add your commit message here" git push origin feature/your-feature-name 4. Open a pull request on the original repository with a clear description of the changes you have made and any additional information that may be relevant.

Once your pull request has been reviewed, we will either merge your changes or provide feedback for further improvements.

Thank you for your interest in contributing to Palette Pal!