All-in-one solution for color management.
Project description
pinkie
All-in-one solution for color management.
Features
- Simple and pythonic way to manage colors
- Multiple models (
RGB,HSL,CMYK,HEX) and conversions - Palettes, schemes and color generators
- Color blending with many modes
- Supports alpha (transparency) channel
Installation
To install this package, run the following command:
pip install pinkie
Usage
Get started
You can define colors like below. Color equals RGBA color.
from pinkie import Color
color = Color('c0ffee')
Initialize colors
You can create colors in different ways:
Color((244, 11, 58)) # rgb tuple, alpha is set to 255
Color((244, 11, 58, 215)) # rgba tuple
Color('#ff53a7') # hex value ('#' is automatically stripped)
Color('ff53a7f6') # hex value with alpha
Color(43252667) # int value
HSLA((259, 94, 47)).to_rgba() # hsl value
...
and define colors with another bit count per channel:
Color((34832, 632, 65103), bits=16) # rgb tuple
Color('ff53a7cc671a', bits=16) # hex value
Color('ff53a7cc671a12e3', bits=16) # hex value with alpha
...
Color conversions
Color models can be converted to RGBA and back:
Color('ff00ff').to_hsla()
Color('157cc3').to_cmyk()
HSLA('44c26b').to_rgba()
...
Color blending
You can blend colors like in Photoshop:
import pinkie.blend as blend
from pinkie import Color
bg = Color('ffd015ff')
fg = Color('ff15bd80')
bg.blend(fg, blend.Normal()) # FF7269FF
and create your own blending mode:
class MyBlend(BlendMode):
def blend(
self,
bg: tuple[float, float, float, float],
fg: tuple[float, float, float, float]
) -> tuple[float, float, float, float]:
a = self._alpha(bg, fg)
def _ch(num: int) -> float:
return bg[num] * fg[num]
return _ch(0), _ch(1), _ch(2), a
bg.blend(fg, MyBlend())
Harmonic colors
There are various methods to get harmonic colors:
color.complementary() # complementary color
color.triadic() # list of triadic colors
color.closest(Color('ffffff'), Color('000000')) # closest color from the list
...
Color palettes
Palettes are just sequences of colors. You can manage them like this:
from pinkie import Color, Palette
palette = Palette(Color('ffffff'), Color('4c66a1'))
palette.add(Color('16c235'))
palette.remove(Color('ffffff'))
Palette.web() # palette of web-safe colors
Palette.gradient(Color('ff0000'), Color('0000ff'), 5) # palette of colors that create gradient from red to blue
...
Project details
Release history Release notifications | RSS feed
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 pinkie-0.0.2.tar.gz.
File metadata
- Download URL: pinkie-0.0.2.tar.gz
- Upload date:
- Size: 12.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.12.3 Windows/10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e32fd49a9da2f121e765e2d0aeae3b5de46d66a0635ee1d2630492c0c7f31843
|
|
| MD5 |
9e4f2cc47349c0f3a8bdd5229be9889a
|
|
| BLAKE2b-256 |
fbeedeb79bbc3f3004bf70feeb6482cb99219ef0b1b55632e14196d045a64b5a
|
File details
Details for the file pinkie-0.0.2-py3-none-any.whl.
File metadata
- Download URL: pinkie-0.0.2-py3-none-any.whl
- Upload date:
- Size: 19.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.12.3 Windows/10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cd8b46a6c7b17f35f298524c4c70c809f07e5d66a0020241a54e02b704c9ba8b
|
|
| MD5 |
d00df773d9cc29d6538e693d47b5f701
|
|
| BLAKE2b-256 |
5f074170f45784a336bf6481555ae7c32b033b29aa01f021cdc8fa73869d9971
|