Bitrix Linux PHP

Консольный скрипт пересохранения jpeg-изображений в меньшем качестве

Встречал несколько раз такую ошибку в проектировании сайта, при которой картинки в папке upload сохранены в слишком хорошем качестве и Google PageSpeed Insights (https://developers.google.com/speed/pagespeed/insights/) показывает низкие результаты из-за этого.

Собственно, сам скрипт:


<?php
set_time_limit(0);
ini_set("memory_limit", "1000M");

function listFiles( $from = '.')
{
if(! is_dir($from))
return false;

$files = array();
$dirs = array( $from);
while( NULL !== ($dir = array_pop( $dirs)))
{
if( $dh = opendir($dir))
{
while( false !== ($file = readdir($dh)))
{
if( $file == '.' || $file == '..')
continue;
$path = $dir . '/' . $file;
if( is_dir($path))
$dirs[] = $path;
else
$files[] = $path;
}
closedir($dh);
}
}
return $files;
}

$arFiles = listFiles("/путь/к/папке/картинок/");
$i=0;

foreach($arFiles as $item)
{
if(getimagesize($item))
{
if ($im = imagecreatefromjpeg($item))
{
$i++;
imagejpeg($im, $item, 80);
imagedestroy($im);
echo "$i) $item " .memory_get_usage()."\n";
}
}
}

Отставить комментарий

Ваш электронный адрес не будет опубликован.Обязательные для заполнения поля отмечены *

один × три =