Skip to content

Web app and CLI tool that lets you recolor images, GIFs, and videos with any custom palette of your choosing

License

Notifications You must be signed in to change notification settings

arrowpc/palettum

Repository files navigation

palettum logo

Palettum is a web app and CLI tool that lets you recolor images, GIFs, and videos with any custom palette of your choosing.
It lets you apply any custom palette by either snapping each pixel to its closest color (ideal for pixel-art styles), or blending the palette as a filter for a smoother effect.

Try it out here


Examples

Note

Unfinished

GIF Pixel Art

Original artwork by lgarabato

Original Catppuccin Dracula Nord Gruvbox

Installation

Note

Unfinished

macOS:

brew tap arrowpc/palettum
brew install palettum

If your system/package manager wasn't listed, you can install the precompiled binary from releases.

Building the Project

If you want to build the project from source, follow these steps:

CLI

To build the command-line interface (CLI) tool, run the following Cargo command from the project root:

cargo build -p cli

The executable will be located in the target/debug/ directory (or target/release/ if you add the --release flag).

Web App

The web application uses a WebAssembly module compiled from Rust code.

Important

It is highly recommended to use rustup for managing Rust toolchains rather than a system-wide installation. This helps avoid potential issues, especially when compiling for wasm32-unknown-unknown targets.

To set up and run the web application:

  1. Navigate to the web frontend:

    cd web
  2. Install dependencies:

    bun install
  3. Compile the WASM binary (release mode):

    bun run wasm:build:release
  4. Run the development server:

    bun run dev

Self-Hosting with Docker

To build and run the web application using Docker:

  1. Build the Docker image:

    docker build -t palettum .
  2. Run the Docker container:

    docker run -p 80:80 palettum

    The web application will then be accessible in your browser at http://localhost


References