bensquire/php-image-optim

此包已被弃用且不再维护。未建议替代包。

一个辅助图像优化的库

2.2.0 2021-06-16 09:12 UTC

This package is auto-updated.

Last update: 2024-04-16 15:34:31 UTC


README

该库的目的是帮助通过命令行在PHP中自动化图像优化

安装

该库遵循PSR-4规范,最简单的安装方法是使用composer,只需在composer.json中添加

composer require bensquire/php-image-optim

然后运行'composer install'或'composer update'即可。

二进制文件

MacOS

brew install Advancecomp # AdvPNG
brew install gifsicle
brew install guetzli
brew install jonof/kenutils/pngout
brew install jpeg # JPEGTran
brew install jpegoptim
brew install mozjpeg
brew install optipng
brew install pngcrush
brew install pngquant
brew install zopfli # Future
brew install svgo # Future

值得注意的是,mozJpeg是libjpeg-turbo的分支,因此它没有自己的二进制名称,例如要在该库中使用它

$tool = new \PHPImageOptim\Tools\Jpeg\MozJpeg();
$tool->setBinaryPath('/usr/local/opt/mozjpeg/bin/jpegtran');

示例

此示例通过链接多个命令演示了PNG文件的优化。

<?php
    include('./vendor/autoload.php');

    use PHPImageOptim\Tools\Png\AdvPng;
    use PHPImageOptim\Tools\Png\OptiPng;
    use PHPImageOptim\Tools\Png\PngCrush;
    use PHPImageOptim\Tools\Png\PngOut;
    use PHPImageOptim\Tools\Png\PngQuant;

    $advPng = new AdvPng();
    $advPng->setBinaryPath('/usr/local/bin/advpng');

    $optiPng = new OptiPng();
    $optiPng->setBinaryPath('/usr/local/bin/optipng');

    $pngOut = new PngOut();
    $pngOut->setBinaryPath('/usr/bin/pngout');

    $pngCrush = new PngCrush();
    $pngCrush->setBinaryPath('/usr/local/bin/pngcrush');

    $pngQuant = new PngQuant();
    $pngQuant->setBinaryPath('/usr/local/bin/pngquant');

    $optim = new PHPImageOptim();
    $optim->setImage('./tests/image/lenna.png');
    $optim->chainCommand($pngQuant)
        ->chainCommand($advPng)
        ->chainCommand($optiPng)
        ->chainCommand($pngCrush)
        ->chainCommand($pngOut);
    $optim->optimise();

工具

修复常见的编码不一致性

    composer php-cs-fixer

查找编码问题

    composer php-stan

运行单元测试

    composer tests

待办事项

添加zopfli支持?

添加svgo支持?