tc-lib-color

May 1, 2026 ยท View on GitHub

PHP color toolkit for conversion and normalization across common color models.

Latest Stable Version Build Coverage License Downloads

Sponsor on GitHub

If this project is useful to you, please consider supporting development via GitHub Sponsors.


Overview

tc-lib-color provides utilities for parsing, converting, and formatting color values used in web and PDF rendering pipelines.

The library is designed to centralize color logic so applications avoid ad-hoc conversion code and rounding drift across modules. It provides a consistent normalization layer that helps keep visual output aligned between browser previews and final PDF rendering.

Namespace\Com\Tecnick\Color
AuthorNicola Asuni info@tecnick.com
LicenseGNU LGPL v3 - see LICENSE
API docshttps://tcpdf.org/docs/srcdoc/tc-lib-color
Packagisthttps://packagist.org/packages/tecnickcom/tc-lib-color

Features

Color Models

  • Grayscale (GRAY)
  • RGB/RGBA and hexadecimal color handling (RGB)
  • HSL/HSLA conversion workflows (HSL)
  • CMYK conversion workflows (CMYK)
  • CIE Lab color handling and conversion workflows (LAB)
  • Spot colors (Separation), with DeviceCMYK and Lab alternate color-space support for PDF output

Integration Helpers

  • CSS-ready color output
  • PDF-oriented color conversion helpers
  • Cross-model conversion helpers on all color models
  • Named web color lookup and normalization

Requirements

  • PHP 8.1 or later
  • Extension: pcre
  • Composer

Installation

composer require tecnickcom/tc-lib-color

Quick Start

<?php

require_once __DIR__ . '/vendor/autoload.php';

$web = new \Com\Tecnick\Color\Web();
$rgb = $web->getRgbObjFromHex('#336699');

echo $rgb->getCssColor();

See example/index.php for a complete conversion showcase.


Development

make deps
make help
make qa

Packaging

make rpm
make deb

For system packages, bootstrap with:

require_once '/usr/share/php/Com/Tecnick/Color/autoload.php';

Contributing

Contributions are welcome. Please review CONTRIBUTING.md, CODE_OF_CONDUCT.md, and SECURITY.md.


Contact

Nicola Asuni - info@tecnick.com