wwaz / colorprofile-php
PHP library and CLI for installing, managing and resolving ICC color profiles.
v0.1.0
2026-05-06 14:18 UTC
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.88
- phpstan/phpstan: ^1.12 || ^2.0
- phpunit/phpunit: ^10.5 || ^11.0
Suggests
- ext-curl: Recommended for robust HTTP downloads
This package is auto-updated.
Last update: 2026-05-06 15:42:19 UTC
README
A PHP library and CLI for installing, managing, and resolving ICC color profiles in web-to-print workflows.
Requirements
- PHP
^8.1 - PHP extensions:
ext-json,ext-zip - Optional but recommended:
ext-curlfor robust HTTP downloads
Installation
composer require wwaz/colorprofile-php
Quickstart
# Initialize config and storage folders vendor/bin/colorprofile init # Install curated profiles and set defaults (if missing) vendor/bin/colorprofile install --all
<?php $profile = colorprofile()->cmyk(); echo $profile->filename();
CLI usage
Full syntax and all flags:
vendor/bin/colorprofile help
List and inspect curated profiles
vendor/bin/colorprofile list registry vendor/bin/colorprofile info ISOcoated_v2_eci
List installed profiles
# Installed profiles from configured path vendor/bin/colorprofile list installed # Installed profiles limited to one color space (--rgb | --cmyk) vendor/bin/colorprofile list installed --rgb vendor/bin/colorprofile list installed --cmyk
Install profiles
# Single curated profile vendor/bin/colorprofile install ISOcoated_v2_eci # All profiles marked safeForBatchInstall in the registry vendor/bin/colorprofile install --all # Only safe batch profiles for one color space vendor/bin/colorprofile install --rgb vendor/bin/colorprofile install --cmyk # Install from a URL you trust vendor/bin/colorprofile install-url https://example.com/foo.icc --space=cmyk --name=Foo \ --license-url=https://example.com/terms --sha256=... # optional: --manifest=... --file-in-archive=... --force
Remove profiles
vendor/bin/colorprofile remove ISOcoated_v2_eci
# or
vendor/bin/colorprofile remove /absolute/path/to/profile.icc
Configure defaults
vendor/bin/colorprofile config set default-cmyk ISOcoated_v2_eci vendor/bin/colorprofile config set default-rgb sRGB_v4_ICC_preference vendor/bin/colorprofile config get default-cmyk vendor/bin/colorprofile config get default-rgb vendor/bin/colorprofile config get path
Configuration bootstrap
Configuration file location:
<project-root>/.colorprofile.config.json
colorprofile never auto-creates the config during normal API calls.
If the file is missing, commands and API calls throw an exception with guidance to run:
vendor/bin/colorprofile init
Default config created by init:
{
"path": "./storage/profiles",
"default": {
"rgb": null,
"cmyk": null
}
}
PHP usage
<?php $profile = wwaz\Colorprofile\Facades\Finder::cmyk(); // or $profile = colorprofile()->cmyk(); echo $profile->name(); // ISOcoated_v2_eci echo $profile->filename(); // absolute path to the .icc file echo $profile->space(); // rgb|cmyk
Settings API
<?php wwaz\Colorprofile\Settings::path('/your/path/to/profiles'); wwaz\Colorprofile\Settings::defaultProfile('cmyk', 'ISOcoated_v2_eci'); wwaz\Colorprofile\Settings::defaultProfile('rgb', 'sRGB_v4_ICC_preference');
Versioning and stability
This project follows Semantic Versioning.
Security and licensing
- Source code is licensed under MIT (
LICENSE). - ICC profiles are third-party assets with separate terms (
THIRD_PARTY_PROFILES.md). - For private vulnerability disclosure, see
SECURITY.md.