Replace colors across every frame of a GIF from the command line.
Project description
GIF Color Changer
Small script for replacing colors in a GIF. It takes one or more color mappings, applies them to every frame, and writes a new GIF.
Setup
uv sync
Usage
uv run python main.py input.gif output.gif \
--map "#FFFFFF=#FF0000" \
--map "#000000=#00FF00"
Or use the installed command:
uv run gifcc input.gif output.gif \
--map "#FFFFFF=#FF0000" \
--map "#000000=#00FF00"
Each --map is:
source_color=replacement_color
So this:
--map "#FFFFFF=#FF0000"
means:
replace white with red
You can pass as many mappings as you need. They run in order, and a pixel is only changed once.
Tolerance
GIF colors are often not exactly what they look like, especially after palette conversion or compression. Use --tolerance to match colors that are close to the source color.
uv run python main.py input.gif output.gif \
--map "#FFFFFF=#FF0000" \
--tolerance 20
The default tolerance is 10.
Output
The script prints how many pixels were changed for each mapping:
(255, 255, 255) -> (255, 0, 0): changed 1234 pixel(s)
If a mapping says it changed 0 pixels, the source color probably does not exist in the GIF at that tolerance.
Install as a uv Tool
From this repo:
uv tool install .
Then run it from anywhere:
gifcc input.gif output.gif --map "#FFFFFF=#FF0000"
To remove it:
uv tool uninstall gif-color-changer
Build
uv build
That writes the package artifacts to dist/.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gif_color_changer-0.1.1.tar.gz.
File metadata
- Download URL: gif_color_changer-0.1.1.tar.gz
- Upload date:
- Size: 2.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3c57e491b1024efaef4d3cfc6885389b0bc386ba40dc9673713af33de1c31ba4
|
|
| MD5 |
d5de2a085b9dd317630ea083d5360719
|
|
| BLAKE2b-256 |
6ad36c229cfcb04cbac3a653ac362e6cfae55d2887640bd89c72745de555f348
|
File details
Details for the file gif_color_changer-0.1.1-py3-none-any.whl.
File metadata
- Download URL: gif_color_changer-0.1.1-py3-none-any.whl
- Upload date:
- Size: 4.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4396a7e6896d3604eea1a586a13d6db8446579111e4aeb5da6f37eeaf0a6ab80
|
|
| MD5 |
6b86ad4a270ce132b6a702253e0c34dc
|
|
| BLAKE2b-256 |
6c8fbdb023a5ede4cf9ecb5d90cc970101784269b93da92c5ae0a1ba20a94fdd
|