原生PHP GIF编码/解码器

4.2.0 2024-09-20 13:35 UTC

README

原生PHP GIF编码/解码器

Latest Version build Monthly Downloads Support me on Ko-fi

Intervention GIF 是一个不依赖于任何图像处理扩展的 PHP 编码和解码器,用于 GIF 图像格式。

只有特殊的 Splitter::class 类将动画 GIF 的数据流分割成单个 GDImage 对象,因此依赖于 GD 库。

该库是处理动画 GIF 文件的 GD 库的主要组件,也是 Intervention Image 的主要组件,但也可以独立工作。

安装

您可以使用 Composer 轻松安装此包。只需使用以下命令请求该包

composer require intervention/gif

代码示例

解码

use Intervention\Gif\Decoder;

// Decode filepath to Intervention\Gif\GifDataStream::class
$gif = Decoder::decode('images/animation.gif');

// Decoder can also handle binary content directly
$gif = Decoder::decode($contents);

编码

使用 Builder 类创建新的 GIF 图像。

use Intervention\Gif\Builder;

// create new gif canvas
$gif = Builder::canvas(width: 32, height: 32);

// add animation frames to canvas
$delay = .25; // delay in seconds after next frame is displayed
$left = 0; // position offset (left)
$top = 0; // position offset (top)

// add animation frames with optional delay in seconds
// and optional position offset for each frame
$gif->addFrame('images/frame01.gif', $delay, $left, $top);
$gif->addFrame('images/frame02.gif', $delay, $left);
$gif->addFrame('images/frame03.gif', $delay);
$gif->addFrame('images/frame04.gif');

// set loop count; 0 for infinite looping
$gif->setLoops(12);

// encode
$data = $gif->encode();

要求

  • PHP >= 8.1

开发和测试

此包附带一个 Docker 镜像,用于构建测试套件和分析容器。要构建此容器,您必须在您的系统上安装 Docker。您可以使用以下命令运行所有测试。

docker-compose run --rm --build tests

在代码库上运行静态分析器。

docker-compose run --rm --build analysis

作者

此库由 Oliver Vogel 开发和维护。

感谢 贡献者社区,他们帮助改进了此项目。

许可证

Intervention GIF 根据 MIT 许可证 许可。