kirapwn / image-optimizer
此包已被废弃,不再维护。未建议替代包。
图像优化/压缩库。此库能够以非常简单快捷的方式优化png、jpg和gif文件。它使用optipng、pngquant、pngcrush、pngout、gifsicle、jpegoptim和jpegtran工具。
1.0.9
2017-01-16 16:43 UTC
Requires
- psr/log: 1.0.*
- symfony/options-resolver: ~2.1 | ~3.0
- symfony/process: ~2.0 | ~3.0
README
这是一个方便且易于使用的图像文件优化器。它使用 optipng、pngquant、jpegoptim 以及其他一些库,所以在使用之前,您应该在服务器上安装适当的库。项目包含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_binpngcrush_binpngout_bingifsicle_binjpegoptim_binjpegtran_bin
您可以将选项数组作为ImageOptimizer\OptimizerFactory构造函数的第一个参数传递。第二个参数是可选的Psr\LoggerInterface。
$factory = new \ImageOptimizer\OptimizerFactory(array('ignore_errors' => false), $logger);
支持的优化器
- 默认(
smart)- 它猜测文件类型并选择针对此文件类型的优化器 png- png文件的优化器链,默认情况下使用pngquant和optipng。pngquant是损失优化jpg- 执行两个优化中的第一个:jpegtran或jpegoptimgif-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