- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
<?php
require_once '../vendor/autoload.php';
require_once 'functions.php';
require_once 'KPFile.php';
require_once 'KPLogger.php';
use Intervention\Image\ImageManagerStatic as Шакализатор;
Шакализатор::configure(array('driver' => 'imagick'));
$logger = new KPLogger();
function сжать(KPFile $шакал, $степеньСжатия, Array $ебучесть, $output) {
    $индексЕбучести = 0;
    if (!is_null($ебучесть[0])) {
        $индексЕбучести = $ебучесть[0];
    }
    if (!is_null($ебучесть[1]) && ($ебучесть[1] > $ебучесть[0])) {
        $индексЕбучести = $ебучесть[1];
    }
    $img = Шакализатор::make($шакал->path);
    $img->resize($ебучесть[0], $ебучесть[1], function ($constraint) {
        $constraint->aspectRatio();
        $constraint->upsize();
    });
    if ($img->mime() !== 'image/jpeg') {
        $img->encode('jpg', 100);
    }
    $img->save($output."$шакал->name-$индексЕбучести.jpg", $степеньСжатия);
}
function сжатьВсехШакалов($path, $степеньСжатия, $ебучестьШакалов, $output) {
    global $logger;
    $files = scandir($path);
    foreach($files as $key => $file) {
        $logger->colorLogWithFiles('blue', $file, $key);
        try {
            $шакал = new KPFile($path.$file);
            if ($шакал->type !== KPFile::FILE_TYPE_IMAGE) {
                continue;
            }
            if (trim($шакал->name) == '') {
                throw new Exception("file=$file, kpFileName=$шакал->name");
            }
            foreach ($ебучестьШакалов as $ебучесть) {
                сжать($шакал, $степеньСжатия, $ебучесть, $output);
            }
        } catch (Exception $e) {
            $logger->exception($e, $key);
        }
    }
}
$степеньСжатия = 22;
$ебучестьШакалов = [
    [60, 60],
    [38, 38]
];
сжатьВсехШакалов('dataHeavy/carsOrig/', $степеньСжатия, $ебучестьШакалов, "../public/img/cars/");
$logger->colorLogWithFiles('blue', '10/10 *** еб/шакалов', null, "\n");