simplylouis/phpresizegif

此包已被废弃,不再维护。未建议替代包。

符合GIF89a规范的Gif图像缩放器,包括透明度和优化后的带有子尺寸元素的Gif图像。

v1.0.6 2018-09-13 10:41 UTC

This package is auto-updated.

Last update: 2020-02-13 14:03:09 UTC


README

从 grandt/phpresizegif v1.0.3 分叉而来

此包旨在实现符合GIF89a规范的gif文件正确缩放。

修复

Php 7.1 tempnam错误提示问题

简介

大多数,如果不是所有其他公开的gif缩放包在优化后的gif文件上都会失败,那些后续帧中只更新文件部分的部分。将这些视为背景图像,精灵在其中移动。生成的gif将保留其宽高比。

该包在方法上相当严谨。它不仅是为了解决特定问题,也是为了让我学习gif是什么以及它们是如何工作的。

使用

该包需要写入文件,原因有两方面。一方面是内存使用,另一方面是您真的不希望每次使用常用gif文件时都动态调整其大小。

导入

将此需求添加到您的 composer.json 文件中

    "simplylouis/phpresizegif": ">=1.0.4"

Composer

如果您已经安装了Composer,请跳过此部分。

Packagist,主要Composer仓库有一个简洁明了且非常短的指南。

或者您可以在Composer网站上查看指南。

对于初次用户来说,最简单的方法是将Composer安装在与您的composer.json文件相同的目录中,尽管还有更好的选择。

从命令行运行此操作

php -r "readfile('https://getcomposer.org.cn/installer');" | php

这将检查您的PHP安装,并下载composer.phar,这是Composer的二进制文件。不过,此文件在服务器上不需要。

安装Composer后,您可以为导入此包创建一个composer.json文件。

{
    "require": {
        "grandt/phpresizegif": ">=1.0.3"
    }
}

然后告诉Composer安装依赖项。

php composer.phar install

这将下载并将您的composer.json文件中定义的所有依赖项放置在vendor目录中。

最后,您需要将新的vendor目录中的autoload.php文件包含进来。

<?php
    require 'vendor/autoload.php';
    .
    .
    .

初始化

include "../vendor/autoload.php";
use grandt\ResizeGif\ResizeGif;

$srcFile = "[path to original gif file]";
$dstFile = "[path to resized file]";

ResizeGif::ResizeToWidth($srcFile, $dstFile, 100);

要创建一个100像素宽的缩略图

ResizeGif::ResizeToWidth($srcFile, $dstFile, 100);

要创建一个100像素高的缩略图

ResizeGif::ResizeToHeight($srcFile, $dstFile, 100);

要将gif的大小加倍。

ResizeGif::ResizeByRatio($srcFile, $dstFile, 2.0);

将GIF大小缩小到一半。

ResizeGif::ResizeByRatio($srcFile, $dstFile, 0.5);