Skip to main content

Python colour library

Project description

tp24

Build Status Documentation Status PyPI Version Github Version Python Versions License

GitHub code size in bytes GitHub repo size GitHub last commit GitHub Release Date Lines of code codecov CodeFactor

Python colour library, made by 7d

  • supports RGB, CMY, CMYK, HSV, HSL models & transparency
  • add & subtract colours to lighten & darken
  • find gradient of line with proportions
  • find similarity of colours
  • colour schemes: analogous, complementary, compound, triadic, tetradic
    • you can define more schemes too, given degree around wheel and number of colours
  • get hex of colour
  • get colour from hex or web name

Current version: v1.0

Documentation: https://tp24.readthedocs.io/en/latest/

Why 'tp24'?

tp24 stands for two power 24, or 2^24 which equals to 16777216, the number of colours that the RGB model can show.

Examples

Create a colour:

>>> col = tp24.rgb(255, 0, 0)
>>> col
rgb(255, 0, 0)

Convert colour from one model to another

>>> col = tp24.rgb(255, 0, 0)
>>> col.hsv()
hsv(0, 100, 100)
>>> col.cmyk()
cmyk(0, 100, 100, 0)

Get individual channels of colour

>>> col.r
255
>>> col.g
0
>>> col.b
0

Get hex value of colours

>>> col.hexv()
'#ff0000'
>>> col.hexv(compress=True)
'#f00'

Load colour from hex or web name

>>> tp24.rgb.from_hex("#987654")
rgb(152, 118, 84)
>>> tp24.hsv.from_web("orange")
hsv(39, 100, 100)

Lighten and darken colours by addition & subtraction

>>> col1 = tp24.rgb(255, 0, 0)
>>> col2 = tp24.hsl(270, 100, 50)
>>> col + col2
rgb(255, 0, 255)
>>> col - col2
rgb(127, 0, 0)

Mix colours

>>> col1*col2
rgb(192, 0, 128)
>>> tp24.tools.gradient(col1, col2)
rgb(192, 0, 128)
>>> tp24.tools.gradient(col1, col2, ap=0.25, bp=0.75)
rgb(160, 0, 191)

Find similarity of colours

>>> # works best in hsl/hsv
>>> col1 = tp24.hsl.from_web("red")
>>> col2 = tp24.hsl.from_web("orange")
>>> tp24.tools.similarity(col1, col2)
0.7388888888888889
>>> col2 = tp24.hsl.from_web("green")
>>> tp24.tools.similarity(col1, col2)
0.8055555555555557

Colour schemes

>>> col = tp24.rgb(255, 0, 0)
>>> col.analogous()
(rgb(255, 0, 128), rgb(255, 128, 0))
>>> col.compound()
(rgb(0, 255, 128), rgb(0, 128, 255))
>>> col.complementary()
rgb(0, 255, 255)
>>> col.triadic()
(rgb(0, 0, 255), rgb(0, 255, 0))
>>> col.tetradic()
(rgb(128, 0, 255), rgb(128, 255, 0), rgb(0, 255, 255))
>>> col.wheel(5, 72)
(rgb(204, 0, 255), rgb(204, 255, 0), rgb(0, 102, 255), rgb(0, 255, 102), rgb(0, 255, 102))

Invert values

>>> col.inverted()
rgb(0, 255, 255)

Support for transparency

>>> col
rgb(255, 0, 0
>>> col = col.add_alpha(50)
>>> col
rgba(255, 0, 0, 50)
>>> col = col.remove_alpha()
>>> col
rgb(255, 0, 0)

Project details


Release history Release notifications | RSS feed

This version

1.0

Download files

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

Source Distribution

tp24-1.0.tar.gz (11.1 kB view hashes)

Uploaded Source

Built Distribution

tp24-1.0-py3-none-any.whl (24.2 kB view hashes)

Uploaded Python 3

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