hankchen / php-canvas-image-renderer
intervention/image v4 bitmap renderer backend for hankchen/php-canvas-next
Package info
github.com/HankChenCH/php-canvas-image-renderer
pkg:composer/hankchen/php-canvas-image-renderer
v2.1.0
2026-10-20 13:13 UTC
Requires
- php: ^8.3
- hankchen/php-canvas-next: ^2.0
- intervention/image: ^4.0
Requires (Dev)
- phpunit/phpunit: ^9.6
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
hankchen/php-canvas-next 的位图渲染后端:
把结构树渲染为 intervention/image v4 的 ImageInterface(GD / Imagick 驱动)。
核心包(结构 + 渲染契约 + 资源物化)见 php-canvas-next 的 README 与设计文档。
安装
composer require hankchen/php-canvas-next hankchen/php-canvas-image-renderer
使用
命名空间与拆分前一致,代码无需改动:
use HankChen\CanvasNext\Canvas; use HankChen\CanvasNext\Layer\ImageLayer; use HankChen\CanvasNext\Renderer\Image\ImageRenderer; use HankChen\CanvasNext\Runtime\NullCancellation; $canvas = Canvas::make(400, 300, ImageLayer::make(400, 300, '#ffffff')->setPriority(10) ); // 第一个参数是渲染取消上下文;无取消需求传 NullCancellation $image = (new ImageRenderer())->render(new NullCancellation(), $canvas); // Intervention\Image\Interfaces\ImageInterface $image->save('/tmp/out.png');
- 单图层渲染:
(new ImageRenderer())->renderLayer(new NullCancellation(), $layer) - 自定义资源下载器:
new ImageRenderer(new \HankChen\CanvasNext\ResourceManagers\ResourceResolver($downloader))
环境要求
- PHP
^8.3、intervention/image^4.0(GD 或 Imagick 驱动) - 文字渲染建议提供真实 TTF/TTC 字体;Imagick 驱动无内置字体,必须提供
开发
composer install composer test php scripts/visual-check.php out.png # 渲染目验样图
核心包依赖走 Packagist。本地跨包联调时临时指向同级核心包(写入 composer.json,勿提交):
composer config repositories.php-canvas-next path ../php-canvas-next