В процессе долгой работы магазина на opencart, столкнулся с проблемой переполнением изображениями товаров.
Вес порядка 500 гб на сервере.
Собственно, меньше слов, больше дела
Предупрежу сразу, что:
Действия необратимы
Не тестировал с изображениями png, у которых прозрачный фон
Не тестировал увеличение изображений (за ненадобностью), но по идее должен увеличивать
На сервере должен установлен ImageMagick
Скрипт неплохо грузит процессор
Если запускаете из под root, не забывайте выставить права на группу и пользователя
Вес порядка 500 гб на сервере.
Собственно, меньше слов, больше дела
PHP:
<?php
//Полный путь до папки с изображением
$imgdir = "";
//Ширина изображения, с которой будем проводить сжатие
$fwidth = "1000";
//До какой ширины сжимаем картинки
$width = "1000";
$dir = new RecursiveDirectoryIterator($imgdir);
$allowed=array("jpg","jpeg","png");
foreach(new RecursiveIteratorIterator($dir) as $file) {
if(in_array(substr($file, strrpos($file, '.') + 1),$allowed)) {
$wh = getimagesize($file);
if( $wh[0] > $fwidth){
system("convert $file -resize $width $file");
}
}
}
?>
Предупрежу сразу, что:
Действия необратимы
Не тестировал с изображениями png, у которых прозрачный фон
Не тестировал увеличение изображений (за ненадобностью), но по идее должен увеличивать
На сервере должен установлен ImageMagick
Скрипт неплохо грузит процессор
Если запускаете из под root, не забывайте выставить права на группу и пользователя
Последнее редактирование: