Skip to main content

All-in-one solution for color management.

Project description

pinkie

pypi python python

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


Download files

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

Source Distribution

pinkie-0.0.2.tar.gz (12.5 kB view details)

Uploaded Source

Built Distribution

pinkie-0.0.2-py3-none-any.whl (19.6 kB view details)

Uploaded Python 3

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

Hashes for pinkie-0.0.2.tar.gz
Algorithm Hash digest
SHA256 e32fd49a9da2f121e765e2d0aeae3b5de46d66a0635ee1d2630492c0c7f31843
MD5 9e4f2cc47349c0f3a8bdd5229be9889a
BLAKE2b-256 fbeedeb79bbc3f3004bf70feeb6482cb99219ef0b1b55632e14196d045a64b5a

See more details on using hashes here.

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

Hashes for pinkie-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 cd8b46a6c7b17f35f298524c4c70c809f07e5d66a0020241a54e02b704c9ba8b
MD5 d00df773d9cc29d6538e693d47b5f701
BLAKE2b-256 5f074170f45784a336bf6481555ae7c32b033b29aa01f021cdc8fa73869d9971

See more details on using hashes here.

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