Skip to main content

Fast & minimal python module to compute the dominant color of an image, written in Rust.

Project description

dominant-color 🔖

Fast & minimal python module to compute the dominant color of an image, written in Rust.

Usage

Pre-compiled binaries are available for Linux using pip :

pip install dominantcolor

Alternatively, you can download wheel directly from releases, or build it yourself.

This module is written in Rust, so it's faster than a pure-python module. Usage is very intuitive :

from dominantcolor import get_dominant_color

# Let's open an image as bytes object.
# This is just for the example, you can use any bytes object that
# correspond to a valid image format (https://crates.io/crates/image#supported-image-formats).
img = open("image.png", "rb").read()

# Now we call the function to compute the dominant color
color = get_dominant_color(img)

# The color is returned as an int, so we convert it to hex to make
# it more readable.
print(hex(color))

If image decoding failed, an dominantcolor.DecodingError exception is raised.

Internally, the module compute the HSL value of each pixel (max. 50k) and classifies each pixel using its hue. The average of the biggest group of pixels is returned.

Build-it yourself

Before you start, ensure Rust is installed on your computer.

$ # Clone the repository
$ git clone https://github.com/baptiste0928/dominant-color.git & cd dominant-color
Cloning into 'dominant-color'...
...

$ # Install maturin (build tool)
$ pip install maturin
...

$ # Build python package
$ maturin build --release
...
📦 Built wheel for CPython 3.8 to ...


Python package (as wheel) can be found at dominant-color/target/wheels/. It can be installed for any project with pip install dominantcolor[...].whl.

Contributing

This is my first real project in Rust, I will be happy to receive contributions to improve it! 🙌 Feel free to open an issue or a PR if you want to contribute.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

dominantcolor-1.0.0-cp39-cp39-manylinux2010_x86_64.whl (1.4 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.12+ x86-64

dominantcolor-1.0.0-cp38-cp38-manylinux2010_x86_64.whl (1.4 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

dominantcolor-1.0.0-cp37-cp37m-manylinux2010_x86_64.whl (1.4 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.12+ x86-64

dominantcolor-1.0.0-cp36-cp36m-manylinux2010_x86_64.whl (1.4 MB view hashes)

Uploaded CPython 3.6m manylinux: glibc 2.12+ x86-64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page