yarri / gif-creator
PHP类,可以将多张图片合成为动画GIF
1.0.1
2024-05-27 13:14 UTC
Requires
- php: >=5.3.0
- ext-gd: *
This package is auto-updated.
Last update: 2024-09-27 14:04:40 UTC
README
GifCreator
================================
GifCreator是一个PHP类,用于将多张图片合成为动画GIF
用途是什么?
这个类可以帮助您创建动画GIF图片:提供多张图片及其持续时间即可!
使用方法
1 - 创建
// Create an array containing file paths, resource var (initialized with imagecreatefromXXX), // image URLs or even binary code from image files. // All sorted in order to appear. $frames = array( imagecreatefrompng("/../images/pic1.png"), // Resource var "/../images/pic2.png", // Image file path file_get_contents("/../images/pic3.jpg"), // Binary source code 'http://thisisafakedomain.com/images/pic4.jpg', // URL ); // Create an array containing the duration (in millisecond) of each frames (in order too) $durations = array(40, 80, 40, 20); // Initialize and create the GIF ! $gc = new GifCreator(); $gc->create($frames, $durations, 5);
create()方法的第三个参数允许您选择动画GIF在停止之前循环的次数。在上一个例子中,我选择了5次循环。设置为0(零)以获得无限循环。
2 - 获取结果
现在您可以获取动画GIF的二进制文件
$gifBinary = $gc->getGif();
然后您可以在浏览器中显示它
header('Content-type: image/gif'); header('Content-Disposition: filename="butterfly.gif"'); echo $gifBinary; exit;
或者将其保存到文件夹中作为GIF文件
file_put_contents('/myfolder/animated_picture.gif', $gifBinary);
行为
- 透明度基于第一帧。只有当您提供具有相同透明背景的多帧时,它才会保存。
- 生成的GIF尺寸基于第一帧。如果您需要调整帧的大小以获得相同的尺寸,可以使用这个类:[https://github.com/Sybio/ImageWorkshop](https://github.com/Sybio/ImageWorkshop)
关于
该类重用了由László Zsidi编写的"GIFEncoder.class.php"代码的一些部分(感谢他)。