A simple package that allows you to create placeholder images for your PHP website.
- π Deterministic output by seed
- ποΈ PNG binary output ready to save or stream
- π Size and component bounds clamped for safety
- π¦ Zero external binaries; pure PHP + GD
Below are sample outputs generated by this library:
- PHP 8.3+
ext-gdenabled (for image creation and PNG encoding)
composer require gomzyakov/image-placeholder<?php
use Gomzyakov\ImagePlaceholder;
$generator = new ImagePlaceholder();
// Generate a 320x180 PNG as binary string (deterministic by seed)
$png = $generator->generate(320, 180, seed: 'my-seed', cx: 4, cy: 3);
// Save to disk
file_put_contents(__DIR__ . '/placeholder.png', $png);<?php
use Gomzyakov\ImagePlaceholder;
$generator = new ImagePlaceholder();
$png = $generator->generate(48, 48, 'avatar-seed');
header('Content-Type: image/png');
header('Content-Length: ' . strlen($png));
echo $png;string ImagePlaceholder::generate(
int $width,
int $height,
string $seed = 'default',
int $cx = 4,
int $cy = 3
)- width, height: Target image size in pixels. Clamped to [1..2000].
- seed: Any string. Same inputs β identical output PNG.
- cx, cy: BlurHash component counts. Clamped to [1..9].
Returns a PNG binary string. Throws RuntimeException if image creation fails.
The placeholder is generated from a pseudo-random source seeded by seed. Using the same tuple (width, height, seed, cx, cy) produces identical PNG output.
Run the test suite:
composer phpunitMIT β see LICENSE.
Found an issue or have a suggestion? Please open an issue in the repository: https://github.com/gomzyakov/image-placeholder.