kehet/imagick-layout-engine

A PHP library for creating complex image layouts with automatic positioning and sizing. This library provides a flexbox-like approach to image composition, making it easy to create structured layouts with text, images, and shapes.

Fund package maintenance!
Kehet

Installs: 661

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/kehet/imagick-layout-engine

3.2.0 2025-11-12 19:42 UTC

This package is auto-updated.

Last update: 2025-12-01 12:45:19 UTC


README

Logo Imagick Layout Engine

Build Status Total Downloads Latest Stable Version License

A PHP library for creating complex image layouts with automatic positioning and sizing. This library provides a flexbox-like approach to image composition, making it easy to create structured layouts with text, images, and shapes.

Requirements

  • PHP 8.3 or later
  • Linux (Windows not tested)
  • Imagick PHP extension

Installation

You can install the package via composer:

composer require kehet/imagick-layout-engine

Basic Usage

// Create a new image
$width = 1500;
$height = 1000;
$imagick = new Imagick();
$imagick->newImage($width, $height, new ImagickPixel('white'));

// Create a row container with rectangles
$frame = new RowContainer();
$frame->addItem(new Rectangle(draw(fill: '#fee2e2')));
$frame->addItem(new Rectangle(draw(fill: '#fca5a5')));
$frame->addItem(new Rectangle(draw(fill: '#dc2626')));
$frame->addItem(new Rectangle(draw(fill: '#450a0a')));

// Draw container onto image
$frame->draw($imagick, 0, 0, $width, $height);

// Output image as PNG
$imagick->setImageFormat('png');
$imagick->writeImage('output.png');

For more examples, see documentation.

Testing

composer test

SAVE_SNAPSHOT

When set, if snapshot file is missing, snapshot image will be automatically written to tests/__snapshots__/.

SAVE_SNAPSHOT=1 composer test -- --filter=YourTest

SAVE_IMAGE_DIFF

When set, a visual diff image will be saved to tests/temp/ whenever an image comparison is performed, regardless of pass/fail.

SAVE_IMAGE_DIFF=1 composer test -- --filter=YourTest

Changelog

Please see CHANGELOG for more information on what has changed recently.

Credits

License

GNU GENERAL PUBLIC LICENSE version 3 or later. Please see License File for more information.