Search by

hankchen / php-canvas-image-renderer

HankChenCH

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

Statistics

Installs: 8

Dependents: 0

Suggesters: 1

Stars: 0

Open Issues: 0

v2.1.0 2026-10-20 13:13 UTC

This package is auto-updated.

Last update: 2026-10-20 13:16:14 UTC


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