1. Go to this page and download the library: Download forgetphp/image-compression library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
forgetphp / image-compression example snippets
use Image\Compression\Type;
use Image\Contract\FinishInterface;
use Image\Contract\ReportEncodingProgressInterface;
use Image\Event\Finish;
use Image\Event\ReportEncodingProgress;
use Image\ImageFactory;
use Image\Listener\FinishListener;
use Image\Listener\ReportEncodingProgressListener;
//监听压缩进度事件(如果需要)
class ReportListener extends ReportEncodingProgressListener
{
/**
* @param ReportEncodingProgress| object $event
*/
public function process( object $event )
{
//压缩进度
//$event->progress;
//当前文件名
//$event->currentFile;
}
}
//监听压缩完成事件(如果需要)
class CompressionFinishListener extends FinishListener
{
/**
* @param Finish| object $event
*/
public function process( object $event )
{
$event->currentFile;//当前文件名
$event->compressionRatio;//压缩比
$event->distImageSize;//压缩后文件大小
$event->distPath;//压缩后文件路径
$event->originImageSize;//原图大小
}
}
$config = [
'type' => Type::CJPEG , //压缩类型
'output_dir' => './runtime', //文件输出路径
//'bin' => '',//对应bin的路径。默认不用填写。如果在本地无法正常运行。请编译对应平台的可执行文件后配置该项
'listener' => [
//ReportEncodingProgressInterface::class => ReportListener::class , //压缩进度事件
//FinishInterface::class => CompressionFinishListener::class ,//压缩完成事件
] ,
];
$image = ImageFactory::create($config);