kirapwn/image-optimizer

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

图像优化/压缩库。此库能够以非常简单快捷的方式优化png、jpg和gif文件。它使用optipng、pngquant、pngcrush、pngout、gifsicle、jpegoptim和jpegtran工具。

1.0.9 2017-01-16 16:43 UTC

This package is not auto-updated.

Last update: 2020-01-24 16:48:05 UTC


README

这是一个方便且易于使用的图像文件优化器。它使用 optipngpngquantjpegoptim 以及其他一些库,所以在使用之前,您应该在服务器上安装适当的库。项目包含Vagrantfile,它定义了一个安装了所有库的测试虚拟机,因此您可以通过检查Vagrantfile来了解如何安装所有这些内容。

感谢ImageOptimizer及其使用的库,您的图像文件可以缩小 10%-70%

基本用法


    $factory = new \ImageOptimizer\OptimizerFactory();
    $optimizer = $factory->get();

    $filepath = /* path to image */;

    $optimizer->optimize($filepath);
    //optimized file overwrites original one

配置

默认情况下,优化器不会抛出任何异常,如果文件无法优化或未安装针对给定文件的优化库,优化器将不会修改原始文件。当您希望最终优化用户上传的文件时,这种行为是可接受的。当您的用例中优化错误应该导致异常时,ignore_errors 选项专门为您创建。

此库非常智能,您无需配置ImageOptimizer使用的所有库的二进制文件路径,库将在几个位置查找这些二进制文件,所以如果二进制文件位于标准位置,它将自动找到。

支持选项

  • ignore_errors (默认:true)
  • optipng_options (默认:array('-i0', '-o2', '-quiet')) - 传递给库的参数数组
  • pngquant_options (默认:array('--force'))
  • pngcrush_options (默认:array('-reduce', '-q', '-ow'))
  • pngout_options (默认:array('-s3', '-q', '-y'))
  • gifsicle_options (默认:array('-b', '-O5'))
  • jpegoptim_options (默认:array('--strip-all', '--all-progressive', '--max=90'))
  • jpegtran_options (默认:array('-optimize', '-progressive'))
  • optipng_bin (默认:将自动猜测) - 您可以强制指定二进制文件路径,但默认情况下它将自动猜测
  • pngquant_bin
  • pngcrush_bin
  • pngout_bin
  • gifsicle_bin
  • jpegoptim_bin
  • jpegtran_bin

您可以将选项数组作为ImageOptimizer\OptimizerFactory构造函数的第一个参数传递。第二个参数是可选的Psr\LoggerInterface


    $factory = new \ImageOptimizer\OptimizerFactory(array('ignore_errors' => false), $logger);

支持的优化器

  • 默认(smart)- 它猜测文件类型并选择针对此文件类型的优化器
  • png - png文件的优化器链,默认情况下使用pngquantoptipngpngquant是损失优化
  • jpg - 执行两个优化中的第一个:jpegtranjpegoptim
  • gif - gifsicle的别名
  • pngquant - 主页
  • optipng - 主页
  • pngcrush - 主页
  • pngout - 主页
  • jpegtran - 官网
  • jpegoptim - 官网
  • gifsicle - 官网

您可以通过传递其名称给 ImageOptimizer\OptimizerFactory::get 方法来获取具体的优化器


    //default optimizer is `smart`
    $optimizer = $factory->get();

    //png optimizer
    $pngOptimizer = $factory->get('png');

    //jpegoptim optimizer etc.
    $jpgOptimizer = $factory->get('jpegoptim');

许可证

MIT