intervention / gif
原生PHP GIF编码/解码器
4.2.0
2024-09-20 13:35 UTC
Requires
- php: ^8.1
Requires (Dev)
- phpstan/phpstan: ^1
- phpunit/phpunit: ^10.0
- slevomat/coding-standard: ~8.0
- squizlabs/php_codesniffer: ^3.8
This package is auto-updated.
Last update: 2024-09-21 07:11:10 UTC
README
原生PHP GIF编码/解码器
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 许可证 许可。