PHPackages                             fundevogel/kirby3-colorist - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Image &amp; Media](/categories/media)
4. /
5. fundevogel/kirby3-colorist

ActiveKirby-plugin[Image &amp; Media](/categories/media)

fundevogel/kirby3-colorist
==========================

Kirby v3 wrapper for colorist

1.8.2(5y ago)13551MITPHP

Since Sep 24Pushed 5y ago2 watchersCompare

[ Source](https://github.com/fundevogel/kirby3-colorist)[ Packagist](https://packagist.org/packages/fundevogel/kirby3-colorist)[ Docs](https://github.com/Fundevogel/kirby3-colorist#readme)[ RSS](/packages/fundevogel-kirby3-colorist/feed)WikiDiscussions master Synced yesterday

READMEChangelog (10)Dependencies (3)Versions (12)Used By (0)

kirby3-colorist
===============

[](#kirby3-colorist)

[![Release](https://camo.githubusercontent.com/1e545edfc75b10a83dd8d6c13bfe077aa339c918335d6abdad07c2345daf5f65/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652f46756e6465766f67656c2f6b69726279332d636f6c6f726973742e737667)](https://github.com/Fundevogel/kirby3-colorist/releases) [![License](https://camo.githubusercontent.com/121a0758c05e8c808951207b546de51233ab4b7bab6d24a67925dbcde3363d3f/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f46756e6465766f67656c2f6b69726279332d636f6c6f726973742e737667)](https://github.com/Fundevogel/kirby3-colorist/blob/master/LICENSE) [![Issues](https://camo.githubusercontent.com/0b5699fba923ce495464440aeab5ea22bb39f4e25dc971171acda613532238ff/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732f46756e6465766f67656c2f6b69726279332d636f6c6f726973742e737667)](https://github.com/Fundevogel/kirby3-colorist/issues) [![Status](https://camo.githubusercontent.com/e89e33b9c7cea9b17f95c81dba027680846f99a1d11f238fd012f2b6be13f9f3/68747470733a2f2f7472617669732d63692e6f72672f66756e6465766f67656c2f6b69726279332d636f6c6f726973742e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/fundevogel/kirby3-colorist)

A Kirby v3 wrapper for `colorist`.

What
----

[](#what)

This library acts as alternative **thumb driver** and is fully `Darkroom` compliant. Therefore, `kirby3-colorist` doesn't interfere with custom `thumb()` methods (shipped with other plugins), while also being fully **compatible to the popular ['Focus' plugin](https://github.com/flokosiol/kirby-focus)**.

It is a Kirby v3 wrapper for the Joe Drago's [`colorist`](https://github.com/joedrago/colorist). While it is capable of **generating and manipulating next-gen image formats** ([unlimited](https://jakearchibald.com/2020/avif-has-landed) - [AVIF](https://aomediacodec.github.io/av1-avif) - [power](https://caniuse.com/avif)!), some features aren't supported (like applying `blur` or `grayscale`).

From the `colorist` README:

> Colorist is an image file and ICC profile converter, generator, and identifier. Why make such a tool when the venerable ImageMagick already exists and seems to offer every possible image processing tool you can imagine? The answer is **absolute luminance**.

If that sounds interesting and you want to read on, be sure to check it out on the commandline or just visit [its homepage](https://joedrago.github.io/colorist) for more information.

How
---

[](#how)

Install this package with [Composer](https://getcomposer.org):

```
composer require fundevogel/kirby3-colorist

```

Now, enable the plugin:

```
// config.php

return [
    // ..
    'thumbs.driver' => 'colorist',
];
```

**Note:** If you just want to generate something like `webp`, you don't need to, because `gd` and `im` can handle it, hassle-free. Using `toFormat('webp')` doesn't require `colorist` to be selected as `thumb.driver` (see below).

### Usage

[](#usage)

This plugin exposes several methods &amp; configuration options.

For example, if you want to convert an image to another format:

```
// Converting a single image to single format:
$image = $page->image('example.jpg');
$webp = $image->toFormat('webp');
// Since this method return a `$file` object, chaining works as usual
$thumb = $webp->thumb('some-preset');

// Converting a single image to multiple formats:
$image = $page->image('example.jpg');
$results = $image->toFormats(['png', 'webp']);
```

For convenience, there are also methods for multiple images:

```
// Converting multiple images to single format:
$images = $page->images();
$webps = $images->toFormat('webp');

// Converting multiple images to multiple formats:
$images = $page->images();
$results = $images->toFormats(['png', 'webp']);
```

You may also extract image profile information, like this:

```
$image = $page->image('example.jpg');
$profile = $image->identify();
```

For further details, have a look at the following sections.

#### Configuration

[](#configuration)

You may also change certain options from your `config.php` globally, like this: `'fundevogel.colorist.optionName'` (or simply pass them to the `thumb()` method:

##### Plugin options

[](#plugin-options)

OptionTypeDefault(s to)Description`'bin'`string`__DIR__ . '/bin/colorist'`Path to `colorist` executable`'formats'`array`['webp']`Default file formats to be used on image uploads`'template'`string`null`Set file blueprint for images generated with `toFormat()`##### Basic options

[](#basic-options)

OptionTypeDefault(s to)Description`'jobs'`int`0`Number of jobs to use when working (`0` = unlimited)`'cmm'`string`'auto'`Color Management Module/System (`lcms` or `colorist`)`'deflum'`int`80`default/fallback luminance value in nits`'hlglum'`int`null`Like `'deflum'`, but uses an appropriate diffuse white based on peak HLG##### Input profile options

[](#input-profile-options)

OptionTypeDefault(s to)Description`'iccin'`string`null`Path to source ICC profile. default is to use embedded profile (if any) or sRGB@deflum`'frameindex'`bool`0`Source frame from an image sequence (AVIF only)##### Output profile options

[](#output-profile-options)

OptionTypeDefault(s to)Description`'iccout'`string`null`Path to ICC profile. Disables all other output profile options`'autograde'`bool`false`Enable automatic color grading of max luminance and gamma`'description'`string`null`ICC profile copyright string`'copyright'`string`null`ICC profile description`'gamma'`string`'auto'`Output gamma (`'pq'` = PQ, `'hlg'` = HLG, `'source'` = force source gamma)`'luminance'`stringint`'source'``'primaries'`string`null`Color primaries. Use builtin (`bt709`, `bt2020`, `p3`) or in the form: rx,ry,gx,gy,bx,by,wx,wy`'noprofile'`bool`false`Do not write the converted image's profile to the output file##### Output format options

[](#output-format-options)

OptionTypeDefault(s to)Description`'bpc'`int`'auto'`Set bits-per-channel (J2K/JP2 only); ranging from `8` to `16``'rate'`int`0`Output rate for for supported output formats. If `0`, codec uses quality value`'tonemap'`stringbool`'auto'``'yuv'`string`'auto'`Choose yuv output format for supported formats (`'444'`, `'422'`, `'420'` or `'yv12'`)`'speed'`int`'auto'`Quality/speed tradeoff when encoding (AVIF only); `0` = best quality, `10` = fastest`'nclx'`string`null`Force the output NCLX color profile to specific values: PRI,TF,MTX (AVIF only)**Note:** When working with multiple formats, you may want to turn `thumbs.quality` into an array:

```
// config.php

return [
    // ..
    'thumbs.quality' => [
        'avif' => 60,
        'webp' => 80,
    ],
];

// template.php
$image->toFormat('avif')->thumb(['width' => 300]);
```

**Note:** You may also define [file templates](https://getkirby.com/docs/reference/panel/blueprints/file) on a per-format basis:

```
// config.php

return [
    // ..
    'fundevogel.colorist.template' => [
        'avif' => 'early-bird',
        'webp' => 'google-lover',
    ],
];
```

#### Methods

[](#methods)

For now, the following methods are available:

##### `identify (bool $asArray)`

[](#identify-bool-asarray)

Provides information about an image's color profile (primaries, luminance and such) as well as width, height &amp; depth.

##### `toFormat (string $format = 'avif')`

[](#toformat-string-format--avif)

Converts an image to `$format` and places it alongside the original version in the respective `content` folder. It returns a `$file` object, ready to be used via `thumb()` etc.

##### `toFormats (array $formats)`

[](#toformats-array-formats)

Converts an image to multiple `$formats` and places them alongside the original version in the respective `content` folder. It returns a `$files` object.

##### `hasFormat (string $format)`

[](#hasformat-string-format)

Checks if `$file` has image of given `$format`, returns `bool`.

##### `isFormat (string $format)`

[](#isformat-string-format)

Checks if `$file` is image of given `$format`, returns `bool`.

#### Hooks

[](#hooks)

On image upload, files are automatically converted to all formats in the `'fundevogel.colorist.formats'` option (`['webp']` by default).

#### Tag

[](#tag)

The `(colorist: example.jpg)` tag supports converting / resizing right from the editor.

##### Options

[](#options)

WIP

Roadmap
-------

[](#roadmap)

The `colorist` library has [much more](https://github.com/joedrago/colorist/blob/master/docs/Usage.md) to offer, and more options will be made available in time - if one of it's many features you really feel is missing, feel free to open a PR!

- Add tests
- Add hooks for file upload/update
- Add tag for editor use
- Add compatibility with 'Focus' plugin by @flokosiol
- Add methods for editing ICC color profile

Credits
-------

[](#credits)

Credit where credit is due - as creator of `colorist`, [Joe Drago](https://github.com/joedrago) is the man of the hour. The included binary powers this project, and I'm thankful for his great work.

Also, I want to say thanks to [@flokosiol](https://github.com/flokosiol) and [@hashandsalt](https://github.com/HashandSalt), from whose work I learned (and borrowed) one or two things.

**Happy coding!**

©️ Fundevogel Kinder- und Jugendbuchhandlung

###  Health Score

30

—

LowBetter than 61% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity16

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity62

Established project with proven stability

 Bus Factor1

Top contributor holds 96.7% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~28 days

Recently: every ~66 days

Total

11

Last Release

1875d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/5933072731cd628e1ef2bdc59bc81da16dac859145a3be2dc5c83aab9095179b?d=identicon)[S1SYPHOS](/maintainers/S1SYPHOS)

---

Top Contributors

[![S1SYPHOS](https://avatars.githubusercontent.com/u/12161504?v=4)](https://github.com/S1SYPHOS "S1SYPHOS (29 commits)")[![replicant64](https://avatars.githubusercontent.com/u/61212347?v=4)](https://github.com/replicant64 "replicant64 (1 commits)")

---

Tags

imagegraphicskirby3

###  Code Quality

TestsPHPUnit

Code StylePHP CS Fixer

### Embed Badge

![Health badge](/badges/fundevogel-kirby3-colorist/health.svg)

```
[![Health](https://phpackages.com/badges/fundevogel-kirby3-colorist/health.svg)](https://phpackages.com/packages/fundevogel-kirby3-colorist)
```

###  Alternatives

[imagine/imagine

Image processing for PHP

4.5k76.9M431](/packages/imagine-imagine)[league/glide

Wonderfully easy on-demand image manipulation library with an HTTP based API.

2.6k54.0M162](/packages/league-glide)[getkirby/cms

The Kirby core

1.5k606.6k542](/packages/getkirby-cms)[andrewgjohnson/imagettftextblur

imagettftextblur is a drop-in replacement for imagettftext with added parameters to add blur, glow and shadow effects to your PHP GD images

28259.2k2](/packages/andrewgjohnson-imagettftextblur)[medienbaecker/kirby-modules

Easily add modules to your pages

895.6k1](/packages/medienbaecker-kirby-modules)[steirico/kirby-plugin-image-crop-field

A image cropping field for kirby.

153.0k](/packages/steirico-kirby-plugin-image-crop-field)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
