- 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");