jbroutier / image-generator
此包已被放弃且不再维护。没有推荐替代包。
离线随机占位图生成器。
1.0.0
2023-06-01 15:56 UTC
Requires
- php: >=8.0
- ext-gd: *
Requires (Dev)
README
图像生成器
离线随机占位图生成器。
这是对 standaniels/image-generator 的重写,保持了包的整体目标,但增加了许多功能,包括
- 更多输出格式:AVIF (PHP 8.1+)、BMP、GIF、JPEG、PNG、WBMP、WebP、XMB。
- 更多颜色选项。
- 更多形状选项。
- 支持透明背景。
- 不依赖于
ext-exif。 - 完全兼容 PHP 8.0+。
基本示例
<?php use ImageGenerator\Canvas; use ImageGenerator\Color; use ImageGenerator\Shape\Shape; $canvas = Canvas::create(400, 400); for ($i = 0; $i < 100; $i++) { $canvas->draw(Shape::random(), Color::random()); } $canvas->render('output.png');
生成的图像将看起来像这样
高级示例
背景颜色
可以定义背景颜色,使用半透明背景或完全透明的背景。
// Fully-transparent background $canvas->enableTransparency(); // Semi-transparent light background. $canvas->enableTransparency(); $canvas->fill(Color::create(236, 240, 241, 0.55)); // Fully-opaque dark background $canvas->fill(Color::create(44, 62, 80, 1));
形状
// Circles only $canvas->draw(Circle::random(), Color::random()); // Hexagons only $canvas->draw(Polygon::random(['min_sides' => 6, 'max_sides' => 6]), Color::random()); // Stars with 5 to 7 points $canvas->draw(Star::random(['min_points' => 5, 'max_points' => 7]), Color::random());
颜色
// Semi-transparent shade of blue $canvas->draw(Shape::random(), Color::create(41, 128, 185, 0.65)); // Fully-opaque shade of green $canvas->draw(Shape::random(), Color::create(39, 174, 96, 1));
形状大小比
形状的大小将根据画布的大小自动计算。然而,可以调整大小比以获得更小或更大的形状。
// With random shapes $shape = Shape::random([ 'circle' => [ 'min_ratio' => 0.0625, 'max_ratio' => 0.125, ], ]); // With a single shape $shape = Shape::circle([ 'min_ratio' => 0.0625, 'max_ratio' => 0.125, ]);
Alpha范围
可以调整透明度范围或完全关闭透明度。0表示完全透明的颜色,而1表示完全不透明的颜色。
// Full alpha range $color = Color::random([ 'min_alpha' => 0, 'max_alpha' => 1 ]); // Fully-opaque colors $color = Color::random([ 'min_alpha' => 1, 'max_alpha' => 1 ]);
输出格式
默认格式是PNG,但可以选择其他图像格式。请注意,AVIF格式的支持仅从PHP 8.1开始。对不同图像格式的支持取决于PHP的构建方式,并且可能因平台而异。
$canvas->render('output.avif' , 'avif'); $canvas->render('output.bmp' , 'bmp' ); $canvas->render('output.gif' , 'webp'); $canvas->render('output.jpeg' , 'jpeg'); $canvas->render('output.png' , 'png' ); $canvas->render('output.wbmp' , 'wbmp'); $canvas->render('output.webp' , 'webp'); $canvas->render('output.xbm' , 'xbm' );
图像质量
某些图像格式允许调整图像质量。选项直接传递给底层渲染函数。
$canvas->render('output.avif', 'avif', 80, 5); // Quality: 80, Speed: 5 $canvas->render('output.bmp' , 'bmp' , true ); // Enable compression $canvas->render('output.jpeg', 'jpeg', 90 ); // Quality: 90 $canvas->render('output.png' , 'png' , 9 ); // Compression level: 9 $canvas->render('output.webp', 'webp', 80 ); // Quality: 80
