mrfakename / php-gif-reborn

此包已被弃用,不再维护。作者建议使用 phpgif/phpgif 包。

v3.0.4 2022-11-10 19:37 UTC

This package is auto-updated.

Last update: 2024-09-22 03:08:56 UTC


README

什么是 phpgif?

phpgif 是一个用于生成 GIF 的 PHP 库 - 简单易用!

安装 phpgif

使用 Composer

在终端或命令提示符中运行以下命令

composer require phpgif/phpgif
use phpgif\GIF\GifGenerator

不使用 Composer

当使用共享主机时,许多主机提供商不允许使用 Composer。请使用以下系统安装 PHP-GIF-Reborn。

  1. 下载仓库
  2. 打开 src/Gif 文件夹
  3. 将 GIFEncoder.php 和 GIFGenerator.php 复制到您的文件中
  4. 将以下代码粘贴到文件顶部
include 'GIFEncoder.php';
include 'GIFGenerator.php';

入门指南

创建一个 PHP 文件并在文件开头添加以下头信息

// Caching disable headers
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");

// Output as a GIF image
header ('Content-type:image/gif');

// Import the GIFEncoder and GIFGenerator PHP files
include 'GIFEncoder.php';
include 'GIFGenerator.php';

在下一条线中,您可以通过首先初始化 GIFGenerator 对象并创建一个包含所有图像帧的数组来创建一个 GIF 图像

// Initialize a new GIFGenerator object
$gif = new GIFGenerator();

// Create a multidimensional array with all the image frames
$imageFrames = array(
	'repeat' => false,
	'transparent' => false,
	'frames' => array(
		array(
			'image' => './images/newyear.jpg',
			'text' => array(
				array(
					'text' => 'Hello GIF frame 1',
					'fonts-color' => '#000',
					'x-position' => 140,
					'y-position' => 138
				)
			),
			'delay' => 100
		),
	)
);

最后,生成图像并在屏幕上 echo 结果

echo $gif->generate($imageFrames);

示例

一个更完整的示例。您可以将以下代码复制到文件中,并在浏览器中执行以查看更完整的结果。如您所见,您不需要在 GIF 图像中使用文本,并且可以根据需要添加每帧的文本,以及每个 GIF 图像的帧数。

<?php
// Caching disable headers
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");

// Output as a GIF image
header ('Content-type: image/gif');

// Include the GIFEncoder and GIFGenerator PHP files
include 'GIFEncoder.php';
include 'GIFGenerator.php';

// Initialize a new GIFGenerator object
$gif = new GIFGenerator();

// Create a multidimensional array with all the image frames
$imageFrames = array(
	'repeat' => 5,
	'transparent' => true,
	'frames' => array(
		array(
			'image' => './images/newyear.jpg',
			'text' => array(
				array(
					'text' => 'Hello GIF frame 1',
					'fonts' => './fonts/Lato-Light.ttf',
					'fonts-size' => 30,
					'angle' => 0,
					'fonts-color' => '#000',
					'x-position' => 140,
					'y-position' => 138
				)
			),
			'delay' => 100
		),
		array(
			'image' => './images/newyear.jpg',
			'text' => array(
				array(
					'text' => 'Hello GIF frame 2',
					'fonts' => './fonts/Lato-Light.ttf',
					'fonts-size' => 15,
					'angle' => 0,
					'fonts-color' => '#000',
					'x-position' => 140,
					'y-position' => 138
				),
				array(
					'text' => 'Hello GIF frame 2',
					'fonts' => './fonts/Lato-Light.ttf',
					'fonts-size' => 15,
					'angle' => 0,
					'fonts-color' => '#000',
					'x-position' => 140,
					'y-position' => 108
				)
			),
			'delay' => 100
		),
		array(
			'image' => './images/newyear.jpg',
			'delay' => 50
		)
	)
);

echo $gif->generate($imageFrames);

许可 & 致谢

本软件根据 MIT 许可证发布。

原始代码

phpgif 基于 PHP-GIF

GIFEncoder

GIFEncoder.class.php 是由 László Zsidi 修改的 GIFEncoder PHP 类。